diff --git a/lib/wabanex/users/get.ex b/lib/wabanex/users/get.ex index fc6640a..6376e57 100644 --- a/lib/wabanex/users/get.ex +++ b/lib/wabanex/users/get.ex @@ -1,5 +1,7 @@ defmodule Wabanex.Users.Get do - alias Wabanex.{Repo, User} + import Ecto.Query + + alias Wabanex.{Repo, Training, User} def call(id) do id @@ -14,7 +16,18 @@ defmodule Wabanex.Users.Get do |> Repo.get(uuid) |> case do nil -> {:error, "User not found"} - user -> {:ok, user} + user -> {:ok, load_training(user)} end end + + defp load_training(%User{} = user) do + today = Date.utc_today() + + query = + from(t in Training, + where: ^today >= t.start_date and ^today <= t.end_date + ) + + Repo.preload(user, trainings: {first(query, :inserted_at), :exercises}) + end end diff --git a/lib/wabanex_web/schema/types/user.ex b/lib/wabanex_web/schema/types/user.ex index 64d24e8..149737d 100644 --- a/lib/wabanex_web/schema/types/user.ex +++ b/lib/wabanex_web/schema/types/user.ex @@ -6,6 +6,7 @@ defmodule WabanexWeb.Schema.Types.User do field :id, non_null(:uuid4) field :name, non_null(:string) field :email, non_null(:string) + field :trainings, list_of(:training) end input_object :create_user_input do