Index route with pagination (not in a relationship route) did not include pagination metada (limit and offset). Even if I set countable to true, it only include total metadata. Am I missing something?
This is the example resource.
# The resource
defmodule Project do
json_api do
type "project"
routes do
base "/projects"
index :read, primary?: true
end
end
actions do
defaults [:destroy, create: :*, update: :*]
read :read do
primary? true
pagination do
offset? true
default_limit 10
countable true
max_page_size 100
paginate_by_default? true
end
end
end
attributes do
uuid_primary_key :id
attribute :name, :string, public?: true, allow_nil?: false
attribute :description, :string, public?: true, allow_nil?: false
timestamps()
end
end
Can you show me the full request you made and the response you got?
Iām doing the request from test, the code below
describe "list projects" do
setup do
projects = generate_many(project(), 3)
[projects: projects]
end
test "returns projects with pagination", c do
assert length(c.projects) == 3
conn = Test.get(Projects, "/projects?page[count]=true&page[limit]=2", status: 200)
assert conn.resp_body["meta"]["page"]["total"] == 3
assert conn.resp_body["meta"]["page"]["limit"] == 2
end
end
And the response
%{
"data" => [
%{
"attributes" => %{"description" => "ä", "name" => "ņ«"},
"id" => "22e25bfa-ab85-4716-85f3-3d4b4217d6fc",
"links" => %{},
"meta" => %{},
"relationships" => %{},
"type" => "project"
},
%{
"attributes" => %{"description" => "ó¦ó»", "name" => "ń¦
"},
"id" => "3b6baa15-6df3-4274-8f4f-d8c403603682",
"links" => %{},
"meta" => %{},
"relationships" => %{},
"type" => "project"
}
],
"jsonapi" => %{"version" => "1.0"},
"links" => %{
"first" => "http://www.example.com/projects?page[count]=true&page[limit]=2",
"last" => "http://www.example.com/projects?page[count]=true&page[offset]=1&page[limit]=2",
"next" => "http://www.example.com/projects?page[count]=true&page[offset]=2&page[limit]=2",
"prev" => nil,
"self" => "http://www.example.com/projects?page[count]=true&page[limit]=2"
},
"meta" => %{"page" => %{"total" => 3}}
}
Ah, yeah the total and limit arenāt passed back as metadata, they are only present in the links.
I donāt think itās really necessary to have that metadata. It was just sent to us by the person making the request, and appears in the links to fetch the next page etc.
Iāve read the docs although it is for paginated relationships. In the response format it says the metadata is included. Maybe it should be clear that it is not for non-relationships pagination?
FYI, Iām currently trying out Ash for use in my organization. And I want to make sure my co-workers are interested in using it. Theyāre beginners, and I think if they encounter any obstacles, theyāll refuse to use it.
However, Iām confident that using Ash will make long-term maintenance easier for them. I just need to get them interested in using it.
Ah, yeah so we must be including it for paginated relationships. We might as well include them in the parent pagination metadata as well if we are there. Please open an issue 
Thanks, Iāll open an issue
Woww, that was fast⦠thank you very much