Asbsinthe graphql api schema.ex error

I created a project on this site step by step, I got such an error

lib/community_web/resolvers/news_resolver.ex my file

defmodule CommunityWeb.NewsResolver do
  alias Community.News

  def all_links(_root, _args, _info) do
    {:ok, News.list_links()}
  end
end

lib/community_web/schema.ex my file

defmodule CommunityWeb.Schema do
  use Absinthe.Schema

  alias CommunityWeb.NewsResolver

  object :link do
    field :id, non_null(:id)
    field :url, non_null(:string)
    field :description, non_null(:string)
  end

  query do
    @desc "Get all links"
    field :all_links, non_null(list_of(non_null(:link)))
    resolve(&NewsResolver.all_links/3)
  end
end

error

C:\Users\baris\community>iex -S mix phx.server
Compiling 4 files (.ex)

== Compilation error in file lib/community_web/schema.ex ==
** (Absinthe.Schema.Notation.Error) Invalid schema notation: `resolve` must only be used within `field`. Was used in `object`.
    (absinthe 1.7.0) lib/absinthe/schema/notation.ex:2076: Absinthe.Schema.Notation.recordable!/3
    (absinthe 1.7.0) expanding macro: Absinthe.Schema.Notation.resolve/1
    lib/community_web/schema.ex:15: CommunityWeb.Schema (module)
    (absinthe 1.7.0) expanding macro: Absinthe.Schema.query/1
    lib/community_web/schema.ex:12: CommunityWeb.Schema (module)

(note: I edited your post to use triple-backticks to format code)

This line is the problem:

field :all_links, non_null(list_of(non_null(:link)))

when the tutorial wires this up under “Query Resolver”, it passes a do block to field:

query do
  @desc "Get all links"
  field :all_links, non_null(list_of(non_null(:link))) do # <========= this is important
    resolve(&NewsResolver.all_links/3)
  end
end
3 Likes