[day-04] expose training in graphql
This commit is contained in:
parent
d5faec5f65
commit
eaac531e0b
5
lib/wabanex_web/resolvers/training.ex
Normal file
5
lib/wabanex_web/resolvers/training.ex
Normal file
@ -0,0 +1,5 @@
|
||||
defmodule WabanexWeb.Resolvers.Training do
|
||||
alias Wabanex.Trainings
|
||||
|
||||
def create(%{input: params}, _context), do: Trainings.Create.call(params)
|
||||
end
|
@ -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
|
||||
|
16
lib/wabanex_web/schema/types/training.ex
Normal file
16
lib/wabanex_web/schema/types/training.ex
Normal file
@ -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
|
Loading…
x
Reference in New Issue
Block a user