   :allowed-methods #{:get :post}
   :available-media-types #{"application/edn" "text/html"}
   :authorized? (authorized? querier :datasets)
-  :post! (fn [{{{:keys [entity-id]} :route-params :as request} :request}]
-           (let [{:keys [members name]} (decode-body request)
+  :post! (fn [{{body :body {:keys [entity-id]} :route-params} :request}]
+           (let [{:keys [members name]} (-> body read-edn-body ->shallow-kebab-map)
                  members-str            (string/join \, members)
                  ds                     {:entity_id entity-id
                                          :name name

  :known-content-type? #{"application/json"}
  :authorized? (authorized? querier :measurement)

  :post! (fn [{{{:keys [device-id]} :route-params :as request} :request}]
           (let [topic (get-in queue ["measurements"])]
             (doseq [measurement (:measurements (decode-body request))]
               (let [t        (db-timestamp (get measurement "timestamp"))
                     m2       {:device-id device-id
                               :type (get measurement "type")

    [:pre (with-out-str
            (pprint item))]]))

(defmulti decode-body :content-type :default "application/json")

(defmethod decode-body "application/json" [{body :body}] (some-> body read-json-body ->shallow-kebab-map))
