Skip to content

Commit 219a473

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

File tree

2 files changed

+17
-36
lines changed

2 files changed

+17
-36
lines changed

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

Lines changed: 16 additions & 35 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
@@ -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)

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)