diff --git a/src/aretherecookies/db.clj b/src/aretherecookies/db.clj index 4442ec5..6868456 100644 --- a/src/aretherecookies/db.clj +++ b/src/aretherecookies/db.clj @@ -68,5 +68,13 @@ (defn select-latest-quantity [{:keys [:foodItemId]}] (select-latest-quantity-query @pooled-db {:food_item_id (wrap-in-quotes foodItemId)})) -(defn create-food-item [{:keys [:name :placeId :category :latitude :longitude]}] - (insert-food-item @pooled-db {:name name :placeId placeId :category category :longitude longitude :latitude latitude})) +(defn create-food-item [{:keys [:name :placeId :category :quantity :latitude :longitude]}] + (let [food-item (first (insert-food-item + @pooled-db + {:name name + :placeId placeId + :category category + :longitude longitude + :latitude latitude})) + quantity (first (insert-quantity {:foodItemId (:id food-item) :quantity quantity}))] + (merge food-item (select-keys quantity [:quantity :date])))) diff --git a/src/aretherecookies/handler.clj b/src/aretherecookies/handler.clj index 4a5896d..837cc00 100644 --- a/src/aretherecookies/handler.clj +++ b/src/aretherecookies/handler.clj @@ -48,5 +48,5 @@ (bad-request {"missingkeys" missing-keys}) (as-> (create-food-item food-item) % - (map parse-location %) + (parse-location %) (safe-json %))))) diff --git a/src/aretherecookies/parsers.clj b/src/aretherecookies/parsers.clj index 31b13c8..f831a19 100644 --- a/src/aretherecookies/parsers.clj +++ b/src/aretherecookies/parsers.clj @@ -11,14 +11,14 @@ :else value)) (defn get-coords [item] - (-> - (:location item) - json/read-str - (get "coordinates"))) + (if-let [location (:location item)] + (get (json/read-str location) "coordinates" []) + [])) (defn build-latlng [item] - (let [[longitude latitude] (get-coords item)] - (hash-map :longitude longitude :latitude latitude))) + (if-let [[longitude latitude] (get-coords item)] + (hash-map :longitude longitude :latitude latitude) + {})) (defn parse-location [food-item] (->