@@ -150,21 +150,10 @@ defmodule Astarte.AppEngine.API.Groups.Queries do
150150 with true <- Map . has_key? ( result , group_name ) do
151151 { :ok , true }
152152 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-
163153 false ->
164154 { :ok , false }
165155
166- smth ->
167- dbg ( smth )
156+ _ ->
168157 { :error , :device_not_found }
169158 end
170159 end
@@ -311,24 +300,16 @@ defmodule Astarte.AppEngine.API.Groups.Queries do
311300 keyspace = DataAccessRealm . keyspace_name ( realm_name )
312301
313302 query =
314- from ( d in GroupedDevice ,
303+ from d in GroupedDevice ,
304+ hints: [ "PER PARTITION LIMIT 1" ] ,
315305 prefix: ^ keyspace ,
316306 where: d . group_name == ^ group_name ,
317- select: d . group_name
318- )
319-
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
307+ select: d . group_name ,
308+ limit: 1
329309
330- true ->
331- false
310+ case Repo . fetch_one ( query ) do
311+ { :ok , _ } -> true
312+ _not_found -> false
332313 end
333314 end
334315
@@ -478,12 +459,6 @@ defmodule Astarte.AppEngine.API.Groups.Queries do
478459
479460 def add_to_grouped_device ( realm_name , group_name , decoded_device_ids ) do
480461 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- """
487462
488463 queries =
489464 decoded_device_ids
@@ -499,8 +474,14 @@ defmodule Astarte.AppEngine.API.Groups.Queries do
499474 update_device_groups =
500475 Repo . to_sql ( :update_all , query )
501476
502- insert_grouped_device_params = [ group_name , insertion_uuid , device_id ]
503- insert_grouped_device = { insert_grouped_device_sql , insert_grouped_device_params }
477+ grouped_device =
478+ % GroupedDevice {
479+ group_name: group_name ,
480+ insertion_uuid: insertion_uuid ,
481+ device_id: device_id
482+ }
483+
484+ insert_grouped_device = Repo . insert_to_sql ( grouped_device , prefix: keyspace )
504485
505486 [ update_device_groups , insert_grouped_device ]
506487 end )
0 commit comments