From eaac531e0b2cddf9f703383adaa3f78e39054f0e Mon Sep 17 00:00:00 2001 From: Joao P Dubas Date: Sat, 26 Jun 2021 17:31:59 +0000 Subject: [PATCH] [day-04] expose training in graphql --- lib/wabanex_web/resolvers/training.ex | 5 +++++ lib/wabanex_web/schema/types/root.ex | 9 +++++++++ lib/wabanex_web/schema/types/training.ex | 16 ++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 lib/wabanex_web/resolvers/training.ex create mode 100644 lib/wabanex_web/schema/types/training.ex diff --git a/lib/wabanex_web/resolvers/training.ex b/lib/wabanex_web/resolvers/training.ex new file mode 100644 index 0000000..5d46085 --- /dev/null +++ b/lib/wabanex_web/resolvers/training.ex @@ -0,0 +1,5 @@ +defmodule WabanexWeb.Resolvers.Training do + alias Wabanex.Trainings + + def create(%{input: params}, _context), do: Trainings.Create.call(params) +end diff --git a/lib/wabanex_web/schema/types/root.ex b/lib/wabanex_web/schema/types/root.ex index bbc5541..2f2b542 100644 --- a/lib/wabanex_web/schema/types/root.ex +++ b/lib/wabanex_web/schema/types/root.ex @@ -4,10 +4,12 @@ defmodule WabanexWeb.Schema.Types.Root do alias Crudry.Middlewares.TranslateErrors alias WabanexWeb.Resolvers.User, as: UserResolver + alias WabanexWeb.Resolvers.Training, as: TrainingResolver alias WabanexWeb.Schema.Types import_types Types.Custom.UUID4 import_types Types.User + import_types Types.Training object :root_query do field :get_user, type: :user do @@ -24,5 +26,12 @@ defmodule WabanexWeb.Schema.Types.Root do resolve &UserResolver.create/2 middleware TranslateErrors end + + field :create_training, type: :training do + arg :input, non_null(:create_training_input) + + resolve &TrainingResolver.create/2 + middleware TranslateErrors + end end end diff --git a/lib/wabanex_web/schema/types/training.ex b/lib/wabanex_web/schema/types/training.ex new file mode 100644 index 0000000..c6f95bb --- /dev/null +++ b/lib/wabanex_web/schema/types/training.ex @@ -0,0 +1,16 @@ +defmodule WabanexWeb.Schema.Types.Training do + use Absinthe.Schema.Notation + + @desc "Logic training representation" + object :training do + field :id, non_null(:uuid4) + field :start_date, non_null(:string) + field :end_date, :string + end + + input_object :create_training_input do + field :user_id, non_null(:uuid4) + field :start_date, non_null(:string) + field :end_date, :string + end +end