From 1e356d213bf21031080896fe701ac9b6193dd52a Mon Sep 17 00:00:00 2001 From: byte Date: Tue, 28 May 2019 12:50:46 -0400 Subject: [PATCH 1/4] elasticsearch 7 support --- lib/scrivener/paginater/esx/search.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/scrivener/paginater/esx/search.ex b/lib/scrivener/paginater/esx/search.ex index 4ccb7a2..404d325 100644 --- a/lib/scrivener/paginater/esx/search.ex +++ b/lib/scrivener/paginater/esx/search.ex @@ -14,7 +14,7 @@ defimpl Scrivener.Paginater, for: ESx.Model.Search do {rsp.records, rsp.total} else rsp = model.results search - {rsp.hits, rsp.total} + {rsp.hits, rsp.total["value"]} end %Page{ From d6226fc610f91845f0d3664c0e841e957c87c9dc Mon Sep 17 00:00:00 2001 From: byte Date: Tue, 28 May 2019 13:38:45 -0400 Subject: [PATCH 2/4] other one --- lib/scrivener/paginater/esx/search.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/scrivener/paginater/esx/search.ex b/lib/scrivener/paginater/esx/search.ex index 404d325..e9a5fc4 100644 --- a/lib/scrivener/paginater/esx/search.ex +++ b/lib/scrivener/paginater/esx/search.ex @@ -11,7 +11,7 @@ defimpl Scrivener.Paginater, for: ESx.Model.Search do {entries, total_entries} = if model.repo do rsp = model.records search - {rsp.records, rsp.total} + {rsp.records, rsp.total["value"]} else rsp = model.results search {rsp.hits, rsp.total["value"]} From bd793e7915f3c5bdd85807825084eddce253e521 Mon Sep 17 00:00:00 2001 From: byte Date: Tue, 28 May 2019 16:57:54 -0400 Subject: [PATCH 3/4] allow explicitly setting the query target --- lib/scrivener/paginater/esx/search.ex | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/scrivener/paginater/esx/search.ex b/lib/scrivener/paginater/esx/search.ex index e9a5fc4..46a6a08 100644 --- a/lib/scrivener/paginater/esx/search.ex +++ b/lib/scrivener/paginater/esx/search.ex @@ -4,13 +4,17 @@ defimpl Scrivener.Paginater, for: ESx.Model.Search do @moduledoc false @spec paginate(ESx.Model.Search.t, Scrivener.Config.t) :: Scrivener.Page.t - def paginate(search, %Config{page_size: page_size, page_number: page_number, module: model}) do - model = Map.get search, :__model__, model + def paginate(search, %Config{page_size: page_size, page_number: page_number, module: model} = config) do + model = Map.get(search, :__model__, model) + opts = Map.get(config, :options, []) search = pager_condition(search, page_number, page_size) + schema = Map.fetch(search, :__schema__) + queryable = Keyword.get(opts, :queryable, schema) + {entries, total_entries} = if model.repo do - rsp = model.records search + rsp = model.records search, queryable {rsp.records, rsp.total["value"]} else rsp = model.results search From 5d64a7bb8f30afd0cc874d5a4f0c4caea118bd69 Mon Sep 17 00:00:00 2001 From: byte Date: Tue, 28 May 2019 16:59:45 -0400 Subject: [PATCH 4/4] get not fetch --- lib/scrivener/paginater/esx/search.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/scrivener/paginater/esx/search.ex b/lib/scrivener/paginater/esx/search.ex index 46a6a08..0c1ee50 100644 --- a/lib/scrivener/paginater/esx/search.ex +++ b/lib/scrivener/paginater/esx/search.ex @@ -9,7 +9,7 @@ defimpl Scrivener.Paginater, for: ESx.Model.Search do opts = Map.get(config, :options, []) search = pager_condition(search, page_number, page_size) - schema = Map.fetch(search, :__schema__) + schema = Map.get(search, :__schema__) queryable = Keyword.get(opts, :queryable, schema) {entries, total_entries} =