Skip to content
Snippets Groups Projects
Commit c71fd419 authored by Ryan Senior's avatar Ryan Senior
Browse files

Add a validation of dimension POST for human_readable_field_id

If we have an external remapping, human_readable_field_id is
required. We now return a 400 if that is missing.
parent 3d988a6c
No related branches found
No related tags found
No related merge requests found
......@@ -103,16 +103,20 @@
dimension-name su/NonBlankString
human_readable_field_id (s/maybe su/IntGreaterThanZero)}
(let [field (api/read-check Field id)]
(api/check (or (= dimension-type "internal")
(and (= dimension-type "external")
human_readable_field_id))
[400 "Foreign key based remappings require a human readable field id"])
(if-let [dimension (Dimension :field_id id)]
(db/update! Dimension (:id dimension)
{:type dimension-type
:name dimension-name
:human_readable_field_id human_readable_field_id})
(db/insert! Dimension
{:field_id id
:type dimension-type
:name dimension-name
:human_readable_field_id human_readable_field_id}))
{:field_id id
:type dimension-type
:name dimension-name
:human_readable_field_id human_readable_field_id}))
(Dimension :field_id id)))
(api/defendpoint DELETE "/:id/dimension"
......
......@@ -314,6 +314,12 @@
[before-creation
(tu/boolean-ids-and-timestamps new-dim)])))
;; External remappings require a human readable field id
(expect
clojure.lang.ExceptionInfo
(tt/with-temp* [Field [{field-id-1 :id} {:name "Field Test 1"}]]
(dimension-post field-id-1 {:name "some dimension name", :type "external"})))
;; Ensure we can delete a dimension
(expect
[{:id true
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment