Update to sync newer resources from a datetime.

dev
KKlochko 3 months ago
parent cbec8fceb4
commit 3285265e4d

@ -7,8 +7,8 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncAuthorsTask do
require Logger
def sync(%DBIServer{} = server) do
url = "#{server.url}/api/v1/json/authors"
def sync(%DBIServer{} = server, url_params \\ "") do
url = "#{server.url}/api/v1/json/authors#{url_params}"
FetchJsons.get(url, sync_author_closure(server))
server

@ -9,8 +9,8 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncBooksTask do
require Logger
def sync(%DBIServer{} = server) do
url = "#{server.url}/api/v1/json/books"
def sync(%DBIServer{} = server, url_params \\ "") do
url = "#{server.url}/api/v1/json/books#{url_params}"
FetchJsons.get(url, sync_author_closure(server))
server

@ -7,8 +7,8 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncPublishersTask do
require Logger
def sync(%DBIServer{} = server) do
url = "#{server.url}/api/v1/json/publishers"
def sync(%DBIServer{} = server, url_params \\ "") do
url = "#{server.url}/api/v1/json/publishers#{url_params}"
FetchJsons.get(url, sync_closure(server))
server

@ -3,21 +3,32 @@ defmodule DecentralisedBookIndex.Sync.SyncServerTask do
alias DecentralisedBookIndex.Metadata.DBIServer
alias DecentralisedBookIndex.SyncTasks.SyncAuthorsTask
alias DecentralisedBookIndex.SyncTasks.SyncPublishersTask
alias DecentralisedBookIndex.SyncTasks.SyncBooksTask
def sync_all() do
def sync_all(last_sync_datetime \\ nil) do
{:ok, servers} = Metadata.list_dbi_server()
params = params(last_sync_datetime)
for server <- servers do
sync_one(server)
sync_one(server, params)
end
:ok
end
def sync_one(%DBIServer{} = server) do
def sync_one(%DBIServer{} = server, url_params \\ "") do
server
|> SyncAuthorsTask.sync()
|> SyncAuthorsTask.sync(url_params)
|> SyncPublishersTask.sync(url_params)
|> SyncBooksTask.sync(url_params)
:ok
end
defp params(datetime) when is_nil(datetime), do: ""
defp params(datetime) when not is_nil(datetime) do
"?filter[updated_at][gte]=#{DateTime.to_iso8601(datetime)}"
end
end

Loading…
Cancel
Save