@@ -136,36 +136,10 @@ defmodule Astarte.AppEngine.API.Groups.Queries do
136136
137137 def check_device_in_group ( realm_name , group_name , device_id ) do
138138 keyspace = DataAccessRealm . keyspace_name ( realm_name )
139- { :ok , decoded_device_id } = Device . decode_device_id ( device_id )
140139
141- query =
142- from ( d in DataBaseDevice ,
143- prefix: ^ keyspace ,
144- where: d . device_id == ^ decoded_device_id ,
145- select: d . groups
146- )
147-
148- result = Repo . one ( query ) || % { }
149-
150- with true <- Map . has_key? ( result , group_name ) do
151- { :ok , true }
152- else
153- { :error , :invalid_device_id } ->
154- { :error , :device_not_found }
155-
156- { :error , reason } ->
157- _ = Logger . error ( "Database error: #{ inspect ( reason ) } ." , tag: "db_error" )
158- { :error , :database_error }
159-
160- [ ] ->
161- { :ok , false }
162-
163- false ->
164- { :ok , false }
165-
166- smth ->
167- dbg ( smth )
168- { :error , :device_not_found }
140+ case fetch_device_groups ( keyspace , device_id ) do
141+ { :ok , groups } -> { :ok , Map . has_key? ( groups , group_name ) }
142+ { :error , :device_not_found } -> { :error , :device_not_found }
169143 end
170144 end
171145
@@ -311,24 +285,15 @@ defmodule Astarte.AppEngine.API.Groups.Queries do
311285 keyspace = DataAccessRealm . keyspace_name ( realm_name )
312286
313287 query =
314- from ( d in GroupedDevice ,
288+ from d in GroupedDevice ,
315289 prefix: ^ keyspace ,
316290 where: d . group_name == ^ group_name ,
317- select: d . group_name
318- )
291+ select: d . group_name ,
292+ limit: 1
319293
320- with false <- Repo . all ( query ) |> Enum . empty? ( ) do
321- true
322- else
323- { :error , reason } ->
324- _ = Logger . error ( "Database error: #{ inspect ( reason ) } ." , tag: "db_error" )
325- false
326-
327- [ ] ->
328- false
329-
330- true ->
331- false
294+ case Repo . fetch_one ( query ) do
295+ { :ok , _ } -> true
296+ _not_found -> false
332297 end
333298 end
334299
@@ -478,12 +443,6 @@ defmodule Astarte.AppEngine.API.Groups.Queries do
478443
479444 def add_to_grouped_device ( realm_name , group_name , decoded_device_ids ) do
480445 keyspace = DataAccessRealm . keyspace_name ( realm_name )
481- grouped_device_table = GroupedDevice . __schema__ ( :source )
482-
483- insert_grouped_device_sql = """
484- INSERT INTO #{ keyspace } .#{ grouped_device_table } (group_name, insertion_uuid, device_id)
485- values (?, ?, ?)
486- """
487446
488447 queries =
489448 decoded_device_ids
@@ -499,8 +458,14 @@ defmodule Astarte.AppEngine.API.Groups.Queries do
499458 update_device_groups =
500459 Repo . to_sql ( :update_all , query )
501460
502- insert_grouped_device_params = [ group_name , insertion_uuid , device_id ]
503- insert_grouped_device = { insert_grouped_device_sql , insert_grouped_device_params }
461+ grouped_device =
462+ % GroupedDevice {
463+ group_name: group_name ,
464+ insertion_uuid: insertion_uuid ,
465+ device_id: device_id
466+ }
467+
468+ insert_grouped_device = Repo . insert_to_sql ( grouped_device , prefix: keyspace )
504469
505470 [ update_device_groups , insert_grouped_device ]
506471 end )
0 commit comments