diff options
Diffstat (limited to 'users/grfn/bbbg/src/bbbg/db/attendee_check.clj')
-rw-r--r-- | users/grfn/bbbg/src/bbbg/db/attendee_check.clj | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/users/grfn/bbbg/src/bbbg/db/attendee_check.clj b/users/grfn/bbbg/src/bbbg/db/attendee_check.clj deleted file mode 100644 index 492f786bd660..000000000000 --- a/users/grfn/bbbg/src/bbbg/db/attendee_check.clj +++ /dev/null @@ -1,55 +0,0 @@ -(ns bbbg.db.attendee-check - (:require - [bbbg.attendee :as attendee] - [bbbg.attendee-check :as attendee-check] - [bbbg.db :as db] - [bbbg.user :as user] - [bbbg.util.core :as u])) - -(defn create! [db params] - (db/insert! db :attendee-check - (select-keys params [::attendee/id - ::user/id - ::attendee-check/last-dose-at]))) - -(defn attendees-with-last-checks - [db attendees] - (when (seq attendees) - (let [ids (map ::attendee/id attendees) - checks - (db/list db {:select [:attendee-check.*] - :from [:attendee-check] - :join [[{:select [:%max.attendee-check.checked-at - :attendee-check.attendee-id] - :from [:attendee-check] - :group-by [:attendee-check.attendee-id] - :where [:in :attendee-check.attendee-id ids]} - :last-check] - [:= - :attendee-check.attendee-id - :last-check.attendee-id]]}) - users (if (seq checks) - (u/key-by - ::user/id - (db/list db {:select [:public.user.*] - :from [:public.user] - :where [:in :id (map ::user/id checks)]})) - {}) - checks (map #(assoc % :user (users (::user/id %))) checks) - attendee-id->check (u/key-by ::attendee/id checks)] - (map #(assoc % :last-check (attendee-id->check (::attendee/id %))) - attendees)))) - -(comment - (def db (:db bbbg.core/system)) - - (attendees-with-last-checks - db - (db/list db :attendee) - ) - - (db/insert! db :attendee-check - {::attendee/id #uuid "58bcd372-ff6e-49df-b280-23d24c5ba0f0" - ::user/id #uuid "303fb606-5ef0-4682-ad7d-6429c670cd78" - ::attendee-check/last-dose-at "2021-12-19"}) - ) |