Update to sync newer resources from a datetime.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user