Skip to content

Commit c71a8ec

Browse files
committed
refactor(RM): move intall_trigger_policy
Moved `install_trigger_policy` to `exandra` and `ecto` Signed-off-by: Luca Zaninotto <luca.zaninotto@secomind.com>
1 parent b783245 commit c71a8ec

File tree

3 files changed

+28
-27
lines changed

3 files changed

+28
-27
lines changed

apps/astarte_realm_management/lib/astarte_realm_management/astarte/kv_store.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ defmodule Astarte.RealmManagement.Astarte.KvStore do
7777
:integer -> "intAsBlob(?)"
7878
:big_integer -> "bigintAsBlob(?)"
7979
:string -> "varcharAsBlob(?)"
80+
:uuid -> "uuidAsBlob(?)"
8081
end
8182

8283
sql =

apps/astarte_realm_management/lib/astarte_realm_management/engine.ex

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,8 @@ defmodule Astarte.RealmManagement.Engine do
510510
# TODO: these should be batched together
511511
:ok <-
512512
install_simple_triggers(realm_name, simple_trigger_maps, trigger_uuid, t_container),
513-
:ok <- install_trigger_policy_link(client, trigger_uuid, trigger_policy_name, realm_name) do
513+
:ok <-
514+
install_trigger_policy_link(realm_name, trigger_uuid, trigger_policy_name) do
514515
_ =
515516
Logger.info("Installing trigger.",
516517
trigger_name: trigger_name,
@@ -701,17 +702,17 @@ defmodule Astarte.RealmManagement.Engine do
701702
end)
702703
end
703704

704-
defp install_trigger_policy_link(_client, _trigger_uuid, nil, _realm_name) do
705+
defp install_trigger_policy_link(_realm_name, _trigger_uuid, nil) do
705706
:ok
706707
end
707708

708-
defp install_trigger_policy_link(_client, _trigger_uuid, "", _realm_name) do
709+
defp install_trigger_policy_link(_realm_name, _trigger_uuid, "") do
709710
:ok
710711
end
711712

712-
defp install_trigger_policy_link(client, trigger_uuid, trigger_policy_name, realm_name) do
713+
defp install_trigger_policy_link(realm_name, trigger_uuid, trigger_policy_name) do
713714
with :ok <- verify_trigger_policy_exists(realm_name, trigger_policy_name) do
714-
Queries.install_trigger_policy_link(client, trigger_uuid, trigger_policy_name)
715+
Queries.install_trigger_policy_link(realm_name, trigger_uuid, trigger_policy_name)
715716
end
716717
end
717718

apps/astarte_realm_management/lib/astarte_realm_management/queries.ex

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -961,33 +961,32 @@ defmodule Astarte.RealmManagement.Queries do
961961
:ok
962962
end
963963

964-
def install_trigger_policy_link(client, trigger_uuid, trigger_policy) do
965-
insert_trigger_with_policy_statement =
966-
"INSERT INTO kv_store (group, key, value) VALUES (:policy_group, :trigger_uuid, uuidAsBlob(:t_uuid_to_be_converted))"
964+
def install_trigger_policy_link(realm_name, trigger_uuid, trigger_policy) do
965+
keyspace = Realm.keyspace_name(realm_name)
967966

968-
insert_trigger_with_policy_query =
969-
DatabaseQuery.new()
970-
|> DatabaseQuery.statement(insert_trigger_with_policy_statement)
971-
|> DatabaseQuery.put(:policy_group, "triggers-with-policy-#{trigger_policy}")
972-
|> DatabaseQuery.put(:trigger_uuid, :uuid.uuid_to_string(trigger_uuid))
973-
|> DatabaseQuery.put(:t_uuid_to_be_converted, :uuid.uuid_to_string(trigger_uuid))
967+
trigger_uuid =
968+
trigger_uuid
969+
|> :uuid.uuid_to_string()
970+
|> to_string()
974971

975-
insert_trigger_to_policy_statement =
976-
"INSERT INTO kv_store (group, key, value) VALUES ('trigger_to_policy', :trigger_uuid, :trigger_policy);"
972+
triggers_with_policy =
973+
%{
974+
group: "triggers-with-policy-#{trigger_policy}",
975+
key: trigger_uuid,
976+
value: trigger_uuid,
977+
value_type: :uuid
978+
}
977979

978-
insert_trigger_to_policy_query =
979-
DatabaseQuery.new()
980-
|> DatabaseQuery.statement(insert_trigger_to_policy_statement)
981-
|> DatabaseQuery.put(:trigger_uuid, :uuid.uuid_to_string(trigger_uuid))
982-
|> DatabaseQuery.put(:trigger_policy, trigger_policy)
980+
trigger_to_policy =
981+
%{
982+
group: "trigger_to_policy",
983+
key: trigger_uuid,
984+
value: trigger_policy
985+
}
983986

984-
with {:ok, _result} <- DatabaseQuery.call(client, insert_trigger_with_policy_query),
985-
{:ok, _result} <- DatabaseQuery.call(client, insert_trigger_to_policy_query) do
987+
with :ok <- KvStore.insert(triggers_with_policy, prefix: keyspace),
988+
:ok <- KvStore.insert(trigger_to_policy, prefix: keyspace) do
986989
:ok
987-
else
988-
not_ok ->
989-
_ = Logger.warning("Database error: #{inspect(not_ok)}.", tag: "db_error")
990-
{:error, :cannot_install_trigger_policy_link}
991990
end
992991
end
993992

0 commit comments

Comments
 (0)