Skip to content

Commit ee0e4f1

Browse files
refactor(dup): move xandra select to exandra
1 parent 57d2b5b commit ee0e4f1

File tree

1 file changed

+16
-22
lines changed
  • apps/astarte_data_updater_plant/lib/astarte_data_updater_plant/trigger_policy

1 file changed

+16
-22
lines changed

apps/astarte_data_updater_plant/lib/astarte_data_updater_plant/trigger_policy/queries.ex

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,36 +18,30 @@
1818

1919
defmodule Astarte.DataUpdaterPlant.TriggerPolicy.Queries do
2020
require Logger
21-
alias Astarte.Core.CQLUtils
22-
alias Astarte.DataUpdaterPlant.Config
21+
22+
import Ecto.Query
23+
24+
alias Astarte.DataUpdaterPlant.Repo
25+
alias Astarte.DataUpdaterPlant.DataUpdater.KvStore
26+
alias Astarte.DataUpdaterPlant.DataUpdater.Realm
2327

2428
def retrieve_policy_name(realm_name, trigger_id) do
29+
keyspace_name = Realm.keyspace_name(realm_name)
30+
2531
trigger_id =
2632
trigger_id
2733
|> :uuid.uuid_to_string()
2834
|> to_string()
2935

30-
keyspace_name =
31-
CQLUtils.realm_name_to_keyspace_name(realm_name, Config.astarte_instance_id!())
32-
33-
Xandra.Cluster.run(:xandra, &do_retrieve_policy_name(&1, keyspace_name, trigger_id))
34-
end
35-
36-
defp do_retrieve_policy_name(conn, keyspace_name, trigger_id) do
37-
retrieve_statement =
38-
"SELECT value FROM #{keyspace_name}.kv_store WHERE group='trigger_to_policy' AND key=:trigger_id;"
36+
query =
37+
from kvstore in KvStore,
38+
prefix: ^keyspace_name,
39+
where: kvstore.group == "trigger_to_policy" and kvstore.key == ^trigger_id,
40+
select: kvstore.value
3941

40-
with {:ok, prepared} <- Xandra.prepare(conn, retrieve_statement),
41-
{:ok, %Xandra.Page{} = page} <-
42-
Xandra.execute(conn, prepared, %{"trigger_id" => trigger_id}) do
43-
case Enum.to_list(page) do
44-
[%{"value" => policy_name}] -> {:ok, policy_name}
45-
[] -> {:error, :policy_not_found}
46-
end
47-
else
48-
{:error, error} ->
49-
Logger.warning("Database error #{inspect(error)}", tag: "retrieve_policy_name_db_error")
50-
{:error, error}
42+
case Repo.one(query) do
43+
nil -> {:error, :policy_not_found}
44+
value -> {:ok, value}
5145
end
5246
end
5347
end

0 commit comments

Comments
 (0)