Skip to content

Commit 35eafc3

Browse files
committed
(appengine) Edit rooms queries for exandra
Signed-off-by: Eddy Babetto <eddy.babetto@secomind.com>
1 parent f33618c commit 35eafc3

File tree

2 files changed

+16
-34
lines changed

2 files changed

+16
-34
lines changed

apps/astarte_appengine_api/lib/astarte_appengine_api/groups/queries.ex

Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -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
@@ -314,21 +303,14 @@ defmodule Astarte.AppEngine.API.Groups.Queries do
314303
from(d in GroupedDevice,
315304
prefix: ^keyspace,
316305
where: d.group_name == ^group_name,
317-
select: d.group_name
306+
select: d.group_name,
307+
limit: 1,
308+
hints: ["PER PARTITION LIMIT 1"]
318309
)
319310

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
311+
case Repo.fetch_one(query) do
312+
{:ok, _} -> true
313+
_not_found -> false
332314
end
333315
end
334316

@@ -478,12 +460,6 @@ defmodule Astarte.AppEngine.API.Groups.Queries do
478460

479461
def add_to_grouped_device(realm_name, group_name, decoded_device_ids) do
480462
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-
"""
487463

488464
queries =
489465
decoded_device_ids
@@ -499,8 +475,14 @@ defmodule Astarte.AppEngine.API.Groups.Queries do
499475
update_device_groups =
500476
Repo.to_sql(:update_all, query)
501477

502-
insert_grouped_device_params = [group_name, insertion_uuid, device_id]
503-
insert_grouped_device = {insert_grouped_device_sql, insert_grouped_device_params}
478+
grouped_device =
479+
%GroupedDevice{
480+
group_name: group_name,
481+
insertion_uuid: insertion_uuid,
482+
device_id: device_id
483+
}
484+
485+
insert_grouped_device = Repo.insert_to_sql(grouped_device, prefix: keyspace)
504486

505487
[update_device_groups, insert_grouped_device]
506488
end)

apps/astarte_appengine_api/lib/astarte_appengine_api/rooms/room.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ defmodule Astarte.AppEngine.API.Rooms.Room do
2222
alias Astarte.AppEngine.API.Device.DevicesList
2323
alias Astarte.AppEngine.API.Groups
2424
alias Astarte.AppEngine.API.Rooms.WatchRequest
25+
alias Astarte.AppEngine.API.Rooms.Queries
2526
alias Astarte.AppEngine.API.RPC.DataUpdaterPlant
2627
alias Astarte.AppEngine.API.RPC.DataUpdaterPlant.VolatileTrigger
2728
alias Astarte.AppEngine.API.Utils
@@ -32,7 +33,6 @@ defmodule Astarte.AppEngine.API.Rooms.Room do
3233
alias Astarte.Core.Triggers.SimpleTriggersProtobuf.SimpleTriggerContainer
3334
alias Astarte.Core.Triggers.SimpleTriggersProtobuf.TaggedSimpleTrigger
3435
alias Astarte.Core.Triggers.SimpleTriggersProtobuf.TriggerTargetContainer
35-
alias Astarte.AppEngine.API.Rooms.Queries
3636

3737
require Logger
3838

0 commit comments

Comments
 (0)