   :post!
   (fn [{request :request}]
     (let [body          (-> request :body)
-          entity        (-> request decode-body)
+          entity        (-> request decode-body stringify-values)
           project-id    (-> entity :project-id)
           property-code (-> entity :property-code)
           [username _]  (sec/get-username-password request querier)

               (do
                 (doseq [measurement measurements]
                   (let [t        (db-timestamp (get measurement "timestamp"))
                         m2       {:device-id device-id
                                   :type type
                                   :timestamp t
                                   :value (str (get measurement "value"))
                                   :error (get measurement "error")
                                   :month (get-month-partition-key t)
                                   :metadata "{}"}]
                     (->> m2

    (let [entity-id     (-> request :route-params :entity-id)
          [username _]  (sec/get-username-password request querier)
          user-id       (-> (items querier :user {:username username}) first :id)
          device-id     (upsert! commander :device (-> body
                                                       stringify-values
                                                       (assoc :user-id user-id)
                                                       (dissoc :readings)
                                                       (update-in [:location] encode)))]
      (doseq [reading (:readings body)]
        (let [sensor (-> reading
                         stringify-values
                         (assoc :device-id device-id)
                         (assoc :errors 0)
                         (assoc :events 0))]
          (upsert! commander :sensor (->shallow-kebab-map sensor))
          (upsert! commander :sensor-metadata (->shallow-kebab-map {:device-id device-id :type (get-in reading ["type"])}))))
      {:device-id device-id}))
