Update the sync for Author and Publisher to verify synced data.

dev
KKlochko 3 months ago
parent 133d788584
commit fb90783c35

@ -9,6 +9,7 @@ defmodule DecentralisedBookIndex.Sync.AuthorSync do
attrs attrs
|> Map.delete(:id) |> Map.delete(:id)
|> Map.delete(:author_alias_registry_id) |> Map.delete(:author_alias_registry_id)
|> Map.put(:dbi_server_id, server_id)
author author
|> Ash.Changeset.for_update(:sync, attrs) |> Ash.Changeset.for_update(:sync, attrs)

@ -8,6 +8,7 @@ defmodule DecentralisedBookIndex.Sync.PublisherSync do
attrs = attrs =
attrs attrs
|> Map.delete(:id) |> Map.delete(:id)
|> Map.put(:dbi_server_id, server_id)
publisher publisher
|> Ash.Changeset.for_update(:sync, attrs) |> Ash.Changeset.for_update(:sync, attrs)

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

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

@ -16,15 +16,23 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.AuthorSyncTest do
name: "Author", name: "Author",
description: "Something", description: "Something",
avatar_url: "/images/avatar.png", 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 = AuthorSync.create_update(author, server.id)
assert {:ok, saved_author} = Metadata.get_author_by_id(author.id) assert {:ok, saved_author} = Metadata.get_author_by_id(author.id)
assert author.id == saved_author.id author =
assert author.name == saved_author.name author
assert author.avatar_url == saved_author.avatar_url |> 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 nil != saved_author.author_alias_registry_id
assert server.id == saved_author.dbi_server_id assert server.id == saved_author.dbi_server_id
end end
@ -45,10 +53,7 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.AuthorSyncTest do
assert :ok = AuthorSync.create_update(author_attrs, server.id) assert :ok = AuthorSync.create_update(author_attrs, server.id)
assert {:ok, saved_author} = Metadata.get_author_by_id(author.id) assert {:ok, saved_author} = Metadata.get_author_by_id(author.id)
assert author.id == saved_author.id assert author = saved_author
assert author_attrs.name == saved_author.name
assert author_attrs.description == saved_author.description
assert author_attrs.avatar_url == saved_author.avatar_url
end end
end end
end end

@ -30,6 +30,7 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.PublisherSyncTest do
|> Map.replace(:updated_at, updated_at) |> Map.replace(:updated_at, updated_at)
assert publisher = saved_publisher assert publisher = saved_publisher
assert server.id == saved_publisher.dbi_server_id
end end
test "update an existing publisher" do 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 {:ok, saved_publisher} = Metadata.get_publisher_by_id(publisher.id)
assert publisher_attrs = saved_publisher assert publisher_attrs = saved_publisher
assert server.id == saved_publisher.dbi_server_id
end end
end end
end end

Loading…
Cancel
Save