|
18 | 18 |
|
19 | 19 | defmodule Astarte.DataUpdaterPlant.TriggerPolicy.Queries do |
20 | 20 | 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 |
23 | 27 |
|
24 | 28 | def retrieve_policy_name(realm_name, trigger_id) do |
| 29 | + keyspace_name = Realm.keyspace_name(realm_name) |
| 30 | + |
25 | 31 | trigger_id = |
26 | 32 | trigger_id |
27 | 33 | |> :uuid.uuid_to_string() |
28 | 34 | |> to_string() |
29 | 35 |
|
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 |
39 | 41 |
|
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} |
51 | 45 | end |
52 | 46 | end |
53 | 47 | end |
0 commit comments