Created
September 7, 2017 14:46
-
-
Save xadhoom/e7f8e2cc6e9500aca574f63c8ebfa6c7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
defmodule HPortal.Schema do | |
@moduledoc """ | |
HPortal GraphQL schema entry point | |
""" | |
use Absinthe.Schema | |
def middleware(middleware, _ , _) do | |
middleware ++ [HPortal.Schema.Middleware.AuthorizeErrors] | |
end | |
import_types __MODULE__.User | |
import_types __MODULE__.UserQueries | |
import_types __MODULE__.Foo | |
import_types __MODULE__.FooQueries | |
query do | |
import_fields :user_queries | |
import_fields :foo_queries | |
end | |
end | |
defmodule HPortal.Schema.User do | |
@moduledoc false | |
use Absinthe.Schema.Notation | |
object :user do | |
field :name, :string | |
end | |
end | |
defmodule HPortal.Schema.UserQueries do | |
@moduledoc false | |
use Absinthe.Schema.Notation | |
object :user_queries do | |
field :user, :user do | |
#resolve fn(_, _) -> {:error, :unauthorized} end | |
resolve fn(_, _) -> {:ok, %{name: "foo bar"}} end | |
end | |
end | |
end | |
defmodule HPortal.Schema.Foo do | |
@moduledoc false | |
use Absinthe.Schema.Notation | |
object :foo do | |
field :what, :string | |
end | |
end | |
defmodule HPortal.Schema.FooQueries do | |
@moduledoc false | |
use Absinthe.Schema.Notation | |
object :foo_queries do | |
field :foo, :foo do | |
resolve fn(_, _) -> {:ok, %{what: "im foo"}} end | |
end | |
end | |
end | |
defmodule HPortal.Schema.Middleware.AuthorizeErrors do | |
@behaviour Absinthe.Middleware | |
def call(res, _) do | |
res | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment