@@ -920,52 +920,57 @@ defmodule Astarte.RealmManagement.Queries do
920920 end
921921
922922 def install_simple_trigger (
923- client ,
923+ realm_name ,
924924 object_id ,
925925 object_type ,
926926 parent_trigger_id ,
927927 simple_trigger_id ,
928928 simple_trigger ,
929929 trigger_target
930930 ) do
931+ keyspace = Realm . keyspace_name ( realm_name )
932+
931933 insert_simple_trigger_statement = """
932- INSERT INTO simple_triggers
934+ INSERT INTO #{ keyspace } . simple_triggers
933935 (object_id, object_type, parent_trigger_id, simple_trigger_id, trigger_data, trigger_target)
934- VALUES (:object_id, :object_type, :parent_trigger_id, :simple_trigger_id, :simple_trigger_data, :trigger_target_data );
936+ VALUES (?, ?, ?, ?, ?, ? );
935937 """
936938
937- insert_simple_trigger_query =
938- DatabaseQuery . new ( )
939- |> DatabaseQuery . statement ( insert_simple_trigger_statement )
940- |> DatabaseQuery . put ( :object_id , object_id )
941- |> DatabaseQuery . put ( :object_type , object_type )
942- |> DatabaseQuery . put ( :parent_trigger_id , parent_trigger_id )
943- |> DatabaseQuery . put ( :simple_trigger_id , simple_trigger_id )
944- |> DatabaseQuery . put ( :simple_trigger_data , SimpleTriggerContainer . encode ( simple_trigger ) )
945- |> DatabaseQuery . put ( :trigger_target_data , TriggerTargetContainer . encode ( trigger_target ) )
946-
947- astarte_ref = % AstarteReference {
948- object_type: object_type ,
949- object_uuid: object_id
950- }
951-
952- insert_simple_trigger_by_uuid_statement =
953- "INSERT INTO kv_store (group, key, value) VALUES ('simple-triggers-by-uuid', :simple_trigger_id, :astarte_ref);"
939+ insert_params = [
940+ object_id ,
941+ object_type ,
942+ parent_trigger_id ,
943+ simple_trigger_id ,
944+ SimpleTriggerContainer . encode ( simple_trigger ) ,
945+ TriggerTargetContainer . encode ( trigger_target )
946+ ]
954947
955- insert_simple_trigger_by_uuid_query =
956- DatabaseQuery . new ( )
957- |> DatabaseQuery . statement ( insert_simple_trigger_by_uuid_statement )
958- |> DatabaseQuery . put ( :simple_trigger_id , :uuid . uuid_to_string ( simple_trigger_id ) )
959- |> DatabaseQuery . put ( :astarte_ref , AstarteReference . encode ( astarte_ref ) )
948+ astarte_ref =
949+ % AstarteReference {
950+ object_type: object_type ,
951+ object_uuid: object_id
952+ }
953+ |> AstarteReference . encode ( )
954+
955+ simple_trigger_id =
956+ simple_trigger_id
957+ |> :uuid . uuid_to_string ( )
958+ |> to_string ( )
959+
960+ kv_insert =
961+ % {
962+ group: "simple-triggers-by-uuid" ,
963+ key: simple_trigger_id ,
964+ value: astarte_ref
965+ }
966+ |> KvStore . insert_sql ( keyspace )
960967
961- with { :ok , _res } <- DatabaseQuery . call ( client , insert_simple_trigger_query ) ,
962- { :ok , _res } <- DatabaseQuery . call ( client , insert_simple_trigger_by_uuid_query ) do
963- :ok
964- else
965- not_ok ->
966- _ = Logger . warning ( "Database error: #{ inspect ( not_ok ) } ." , tag: "db_error" )
967- { :error , :cannot_install_simple_trigger }
968- end
968+ Exandra . execute_batch (
969+ Repo ,
970+ % Exandra.Batch {
971+ queries: [ { insert_simple_trigger_statement , insert_params } , kv_insert ]
972+ }
973+ )
969974 end
970975
971976 def install_trigger_policy_link ( _client , _trigger_uuid , nil ) do
0 commit comments