Update to sync newer resources from a datetime.
This commit is contained in:
@@ -7,8 +7,8 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncAuthorsTask do
|
|||||||
|
|
||||||
require Logger
|
require Logger
|
||||||
|
|
||||||
def sync(%DBIServer{} = server) do
|
def sync(%DBIServer{} = server, url_params \\ "") do
|
||||||
url = "#{server.url}/api/v1/json/authors"
|
url = "#{server.url}/api/v1/json/authors#{url_params}"
|
||||||
FetchJsons.get(url, sync_author_closure(server))
|
FetchJsons.get(url, sync_author_closure(server))
|
||||||
|
|
||||||
server
|
server
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncBooksTask do
|
|||||||
|
|
||||||
require Logger
|
require Logger
|
||||||
|
|
||||||
def sync(%DBIServer{} = server) do
|
def sync(%DBIServer{} = server, url_params \\ "") do
|
||||||
url = "#{server.url}/api/v1/json/books"
|
url = "#{server.url}/api/v1/json/books#{url_params}"
|
||||||
FetchJsons.get(url, sync_author_closure(server))
|
FetchJsons.get(url, sync_author_closure(server))
|
||||||
|
|
||||||
server
|
server
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncPublishersTask do
|
|||||||
|
|
||||||
require Logger
|
require Logger
|
||||||
|
|
||||||
def sync(%DBIServer{} = server) do
|
def sync(%DBIServer{} = server, url_params \\ "") do
|
||||||
url = "#{server.url}/api/v1/json/publishers"
|
url = "#{server.url}/api/v1/json/publishers#{url_params}"
|
||||||
FetchJsons.get(url, sync_closure(server))
|
FetchJsons.get(url, sync_closure(server))
|
||||||
|
|
||||||
server
|
server
|
||||||
|
|||||||
@@ -3,21 +3,32 @@ defmodule DecentralisedBookIndex.Sync.SyncServerTask do
|
|||||||
alias DecentralisedBookIndex.Metadata.DBIServer
|
alias DecentralisedBookIndex.Metadata.DBIServer
|
||||||
|
|
||||||
alias DecentralisedBookIndex.SyncTasks.SyncAuthorsTask
|
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()
|
{:ok, servers} = Metadata.list_dbi_server()
|
||||||
|
|
||||||
|
params = params(last_sync_datetime)
|
||||||
|
|
||||||
for server <- servers do
|
for server <- servers do
|
||||||
sync_one(server)
|
sync_one(server, params)
|
||||||
end
|
end
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
||||||
def sync_one(%DBIServer{} = server) do
|
def sync_one(%DBIServer{} = server, url_params \\ "") do
|
||||||
server
|
server
|
||||||
|> SyncAuthorsTask.sync()
|
|> SyncAuthorsTask.sync(url_params)
|
||||||
|
|> SyncPublishersTask.sync(url_params)
|
||||||
|
|> SyncBooksTask.sync(url_params)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
end
|
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
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user