Add the sync server task.
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-03-23 22:14:19 +02:00
parent b8a7ac9a48
commit 1b27b07268
4 changed files with 67 additions and 1 deletions
+7 -1
View File
@@ -62,7 +62,13 @@ defmodule DecentralisedBookIndex.Metadata do
define :destroy_author, action: :destroy
end
resource DecentralisedBookIndex.Metadata.DBIServer
resource DecentralisedBookIndex.Metadata.DBIServer do
define :create_dbi_server, action: :create
define :list_dbi_server, action: :read
define :get_dbi_server_by_id, args: [:id], action: :by_id
define :update_dbi_server, action: :update
define :destroy_dbi_server, action: :destroy
end
resource DecentralisedBookIndex.Metadata.AuthorAliasRegistry do
define :create_author_alias_registry, action: :create
@@ -23,6 +23,12 @@ defmodule DecentralisedBookIndex.Metadata.DBIServer do
primary? true
accept [:name, :url]
end
read :by_id do
argument :id, :uuid, allow_nil?: false
get? true
filter expr(id == ^arg(:id))
end
end
attributes do
@@ -0,0 +1,23 @@
defmodule DecentralisedBookIndex.Sync.SyncServerTask do
alias DecentralisedBookIndex.Metadata
alias DecentralisedBookIndex.Metadata.DBIServer
alias DecentralisedBookIndex.SyncTasks.SyncAuthorsTask
def sync_all() do
{:ok, servers} = Metadata.list_dbi_server()
for server <- servers do
sync_one(server)
end
:ok
end
def sync_one(%DBIServer{} = server) do
server
|> SyncAuthorsTask.sync()
:ok
end
end