Skip to content

Instantly share code, notes, and snippets.

@davidyang
Created November 11, 2022 18:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidyang/b492acf0024f480139eadf79bc5e214a to your computer and use it in GitHub Desktop.
Save davidyang/b492acf0024f480139eadf79bc5e214a to your computer and use it in GitHub Desktop.
(pco/defresolver user-resolver [{:keys [ds]} {:keys [user/id] :as args}]
{::pco/output [:user/first-name :user/last-name :user/email :user/full-name]}
(let [{:keys [first-name last-name email]} (users/find-user ds [:= :users.id id])]
{:user/first-name first-name
:user/email email
:user/last-name last-name
:user/full-name (str first-name " " last-name)}))
(pco/defresolver friends-resolver [{:keys [ds]} {:keys [user/id]}]
{::pco/output [{ :user/friends [ :user/id :user/first-name :user/last-name]}]}
{:user/friends (for [f (friendships/user-friends ds id)]
(let [{:keys [first-name last-name id email profile-assembly-id]} f]
{:user/id id
:user/email email
:user/first-name first-name
:user/last-name last-name
:user/profile-assembly-id profile-assembly-id}))})
;; feed -> days[(date, users-for-day[])]
(pco/defresolver feed-resolver [{:keys [ds] :as env} {:keys [user/id]}]
{::pco/output [{:user/feed
[{:feed/day [:feed/date
{:feed/user-days [:user/id
:feed/date
:feed/food
:feed/blood-glucose
:feed/weight
:feed/comments]} ]}]}]}
(println "params" (pco/params env))
{:user/feed [{:feed/day [{:feed/date (t/today)
:feed/user-days [{:user/id 2
:feed/date (t/today)
:feed/food "food"
:feed/blood-glucose [1 2 3]
:feed/weight "Fat"}]}]}]})
(comment
(def env (merge {:ds (:db/ds (dev/ctx))}
(pci/register [user-resolver friends-resolver feed-resolver])))
(p.connector/connect-env env {::pvc/parser-id `env})
(p.eql/process env [{[:user/id 1] [:user/email
{:user/feed [{:feed/day [ {:feed/user-days [{ :user/id [:user/id :user/first-name :user/full-name]}]}]}]}]}])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment