     [:pre (with-out-str
             (pprint item))]]))
 
+;; TODO move to webutil - how to handle call to ->shallow-kebab-map?
 (defmulti decode-body :content-type :default "application/json")
 
 (defmethod decode-body "application/json" [{body :body}] (some-> body read-json-body ->shallow-kebab-map))


  :post!
  (fn [{request :request}]
    (let [body          (-> request :body)
          entity        (-> body read-json-body ->shallow-kebab-map)
          project-id    (-> entity :project-id)
          property-code (-> entity :property-code)]
      (when (and project-id property-code)

               {::items items}))))

  :malformed?
  (fn [{{{entity-id :entity-id} :route-params
        method :request-method
        :as request} :request}]
    (case method
      :post (let [body (decode-body request)]
              ;; We need to assert a few things
              (if
                  (or
