diff --git a/lib/decentralised_book_index/sync/sync/author_sync.ex b/lib/decentralised_book_index/sync/sync/author_sync.ex index dfc7737..ab5dd19 100644 --- a/lib/decentralised_book_index/sync/sync/author_sync.ex +++ b/lib/decentralised_book_index/sync/sync/author_sync.ex @@ -9,6 +9,7 @@ defmodule DecentralisedBookIndex.Sync.AuthorSync do attrs |> Map.delete(:id) |> Map.delete(:author_alias_registry_id) + |> Map.put(:dbi_server_id, server_id) author |> Ash.Changeset.for_update(:sync, attrs) diff --git a/lib/decentralised_book_index/sync/sync/publisher_sync.ex b/lib/decentralised_book_index/sync/sync/publisher_sync.ex index 41d22dc..f06bf9e 100644 --- a/lib/decentralised_book_index/sync/sync/publisher_sync.ex +++ b/lib/decentralised_book_index/sync/sync/publisher_sync.ex @@ -8,6 +8,7 @@ defmodule DecentralisedBookIndex.Sync.PublisherSync do attrs = attrs |> Map.delete(:id) + |> Map.put(:dbi_server_id, server_id) publisher |> Ash.Changeset.for_update(:sync, attrs) diff --git a/lib/decentralised_book_index/sync/sync_tasks/sync_authors_task.ex b/lib/decentralised_book_index/sync/sync_tasks/sync_authors_task.ex index 0e6e182..f814a9c 100644 --- a/lib/decentralised_book_index/sync/sync_tasks/sync_authors_task.ex +++ b/lib/decentralised_book_index/sync/sync_tasks/sync_authors_task.ex @@ -5,6 +5,8 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncAuthorsTask do alias DecentralisedBookIndex.Metadata.DBIServer + require Logger + def sync(%DBIServer{} = server) do url = "#{server.url}/api/v1/json/authors" FetchJsons.get(url, sync_author_closure(server)) diff --git a/lib/decentralised_book_index/sync/sync_tasks/sync_publishers_task.ex b/lib/decentralised_book_index/sync/sync_tasks/sync_publishers_task.ex index b63f9e4..9a50b22 100644 --- a/lib/decentralised_book_index/sync/sync_tasks/sync_publishers_task.ex +++ b/lib/decentralised_book_index/sync/sync_tasks/sync_publishers_task.ex @@ -5,6 +5,8 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncPublishersTask do alias DecentralisedBookIndex.Metadata.DBIServer + require Logger + def sync(%DBIServer{} = server) do url = "#{server.url}/api/v1/json/publishers" FetchJsons.get(url, sync_closure(server)) diff --git a/test/decentralised_book_index/sync/sync/author_sync_test.exs b/test/decentralised_book_index/sync/sync/author_sync_test.exs index 3f9d072..9277cf2 100644 --- a/test/decentralised_book_index/sync/sync/author_sync_test.exs +++ b/test/decentralised_book_index/sync/sync/author_sync_test.exs @@ -16,15 +16,23 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.AuthorSyncTest do name: "Author", description: "Something", avatar_url: "/images/avatar.png", - author_alias_registry_id: nil + author_alias_registry_id: nil, + inserted_at: "2025-03-21T09:20:48.791539Z", + updated_at: "2025-03-21T09:20:48.791539Z" } + {:ok, inserted_at, 0} = DateTime.from_iso8601(author[:inserted_at]) + {:ok, updated_at, 0} = DateTime.from_iso8601(author[:updated_at]) + assert :ok = AuthorSync.create_update(author, server.id) assert {:ok, saved_author} = Metadata.get_author_by_id(author.id) - assert author.id == saved_author.id - assert author.name == saved_author.name - assert author.avatar_url == saved_author.avatar_url + author = + author + |> Map.replace(:inserted_at, inserted_at) + |> Map.replace(:updated_at, updated_at) + + assert author = saved_author assert nil != saved_author.author_alias_registry_id assert server.id == saved_author.dbi_server_id end @@ -45,10 +53,7 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.AuthorSyncTest do assert :ok = AuthorSync.create_update(author_attrs, server.id) assert {:ok, saved_author} = Metadata.get_author_by_id(author.id) - assert author.id == saved_author.id - assert author_attrs.name == saved_author.name - assert author_attrs.description == saved_author.description - assert author_attrs.avatar_url == saved_author.avatar_url + assert author = saved_author end end end diff --git a/test/decentralised_book_index/sync/sync/publisher_sync_test.exs b/test/decentralised_book_index/sync/sync/publisher_sync_test.exs index ce2832d..29c82c0 100644 --- a/test/decentralised_book_index/sync/sync/publisher_sync_test.exs +++ b/test/decentralised_book_index/sync/sync/publisher_sync_test.exs @@ -30,6 +30,7 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.PublisherSyncTest do |> Map.replace(:updated_at, updated_at) assert publisher = saved_publisher + assert server.id == saved_publisher.dbi_server_id end test "update an existing publisher" do @@ -48,6 +49,7 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.PublisherSyncTest do assert {:ok, saved_publisher} = Metadata.get_publisher_by_id(publisher.id) assert publisher_attrs = saved_publisher + assert server.id == saved_publisher.dbi_server_id end end end