|
5 | 5 | [lrsql.admin.protocol :as adp] |
6 | 6 | [lrsql.spec.reaction :as rs] |
7 | 7 | [lrsql.util.reaction :as ru] |
8 | | - [lrsql.util :as u])) |
| 8 | + [lrsql.util :as u] |
| 9 | + [xapi-schema.spec :as xs])) |
9 | 10 |
|
10 | 11 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
11 | 12 | ;; Validation Interceptors |
|
21 | 22 | (get-in ctx [:request :json-params]) |
22 | 23 | params (cond-> raw-params |
23 | 24 | ruleset |
24 | | - (update :ruleset ru/json->ruleset))] |
25 | | - (if-some [err (s/explain-data rs/create-reaction-params-spec params)] |
26 | | - ;; Invalid parameters - Bad Request |
27 | | - (assoc (chain/terminate ctx) |
28 | | - :response |
29 | | - {:status 400 |
30 | | - :body {:error (format "Invalid parameters:\n%s" |
31 | | - (-> err s/explain-out with-out-str))}}) |
32 | | - ;; Valid params - continue |
33 | | - (assoc ctx ::data params))))})) |
| 25 | + (update :ruleset ru/json->ruleset)) |
| 26 | + lrs (:com.yetanalytics/lrs ctx) |
| 27 | + xapi-version (get-in lrs [:config :reaction-version] "1.0.3")] |
| 28 | + (binding [xs/*xapi-version* xapi-version] |
| 29 | + (if-some [err (s/explain-data rs/create-reaction-params-spec params)] |
| 30 | + ;; Invalid parameters - Bad Request |
| 31 | + (assoc (chain/terminate ctx) |
| 32 | + :response |
| 33 | + {:status 400 |
| 34 | + :body {:error (format "Invalid parameters:\n%s" |
| 35 | + (-> err s/explain-out with-out-str))}}) |
| 36 | + ;; Valid params - continue |
| 37 | + (assoc ctx ::data params)))))})) |
34 | 38 |
|
35 | 39 | (def validate-update-reaction-params |
36 | 40 | "Validate valid params for reaction update." |
|
44 | 48 | ru/json->input |
45 | 49 | (update :reaction-id u/str->uuid) |
46 | 50 | (cond-> |
47 | | - ruleset |
48 | | - (update :ruleset ru/json->ruleset)))] |
49 | | - (if-some [err (s/explain-data rs/update-reaction-params-spec params)] |
50 | | - ;; Invalid parameters - Bad Request |
51 | | - (assoc (chain/terminate ctx) |
52 | | - :response |
53 | | - {:status 400 |
54 | | - :body {:error (format "Invalid parameters:\n%s" |
55 | | - (-> err s/explain-out with-out-str))}}) |
56 | | - ;; Valid params - continue |
57 | | - (assoc ctx ::data params))))})) |
| 51 | + ruleset |
| 52 | + (update :ruleset ru/json->ruleset))) |
| 53 | + lrs (:com.yetanalytics/lrs ctx) |
| 54 | + xapi-version (get-in lrs [:config :reaction-version] "1.0.3")] |
| 55 | + (binding [xs/*xapi-version* xapi-version] |
| 56 | + (if-some [err (s/explain-data rs/update-reaction-params-spec params)] |
| 57 | + ;; Invalid parameters - Bad Request |
| 58 | + (assoc (chain/terminate ctx) |
| 59 | + :response |
| 60 | + {:status 400 |
| 61 | + :body {:error (format "Invalid parameters:\n%s" |
| 62 | + (-> err s/explain-out with-out-str))}}) |
| 63 | + ;; Valid params - continue |
| 64 | + (assoc ctx ::data params)))))})) |
58 | 65 |
|
59 | 66 | (def validate-delete-reaction-params |
60 | 67 | "Validate valid params for reaction delete." |
|
0 commit comments