From 779f998e51bd5e9405be5ec40d34a48b16f8c5bc Mon Sep 17 00:00:00 2001 From: abc3 Date: Tue, 10 May 2022 15:13:25 +0200 Subject: [PATCH 1/4] fix Api.decrypt_extensions_data --- lib/realtime/api.ex | 10 ++++------ test/realtime/api_test.exs | 13 ++++++++++++- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/realtime/api.ex b/lib/realtime/api.ex index 8b20b9e93..a433d6e91 100644 --- a/lib/realtime/api.ex +++ b/lib/realtime/api.ex @@ -153,15 +153,13 @@ defmodule Realtime.Api do |> Repo.preload(:extensions) end - def decrypt_extensions_data( - %Realtime.Api.Tenant{extensions: %{settings: settings, type: type} = extensions} = tenant - ) - when is_map(settings) and is_binary(type) do + def decrypt_extensions_data(%Realtime.Api.Tenant{} = tenant) do secure_key = Application.get_env(:realtime, :db_enc_key) decrypted_extensions = - for extension <- extensions do - %{required: required} = Realtime.Extensions.db_settings(type) + for extension <- tenant.extensions do + settings = extension.settings + %{required: required} = Realtime.Extensions.db_settings(extension.type) decrypted_settings = Enum.reduce(required, settings, fn diff --git a/test/realtime/api_test.exs b/test/realtime/api_test.exs index 1138dd5ed..9a6d16626 100644 --- a/test/realtime/api_test.exs +++ b/test/realtime/api_test.exs @@ -4,7 +4,7 @@ defmodule Realtime.ApiTest do alias Realtime.Api describe "tenants" do - alias Realtime.Api.Tenant + alias Realtime.Api.{Tenant, Extensions} @valid_attrs %{ external_id: "some external_id", @@ -67,6 +67,17 @@ defmodule Realtime.ApiTest do assert {:error, %Ecto.Changeset{}} = Api.create_tenant(@invalid_attrs) end + test "get_dec_tenant_by_external_id/1" do + tenant = tenant_fixture() + + %Tenant{extensions: [%Extensions{} = extension]} = + Api.get_dec_tenant_by_external_id("some external_id") + + assert Map.has_key?(extension.settings, "db_password") + password = extension.settings["db_password"] + assert password = "postgres" + end + test "update_tenant/2 with valid data updates the tenant" do tenant = tenant_fixture() assert {:ok, %Tenant{} = tenant} = Api.update_tenant(tenant, @update_attrs) From bf10bfd38f32aceae29c8d131136e25fbd882999 Mon Sep 17 00:00:00 2001 From: abc3 Date: Tue, 10 May 2022 17:00:07 +0200 Subject: [PATCH 2/4] fix formatting checks --- lib/extensions/postgres/postgres_subscriptions.ex | 1 - lib/mix/tasks/seed.ex | 1 - test/realtime/api_test.exs | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/extensions/postgres/postgres_subscriptions.ex b/lib/extensions/postgres/postgres_subscriptions.ex index b643a4620..aa2d75d39 100644 --- a/lib/extensions/postgres/postgres_subscriptions.ex +++ b/lib/extensions/postgres/postgres_subscriptions.ex @@ -155,7 +155,6 @@ defmodule Extensions.Postgres.Subscriptions do # %{"filter" => "room_id=eq.1", "schema" => "public", "table" => "messages"} transform_to_oid_view(oids, params.config) - |> IO.inspect() |> Enum.each(fn {entity, filters} -> query(conn, sql, [bin_uuid, entity, filters, params.claims]) diff --git a/lib/mix/tasks/seed.ex b/lib/mix/tasks/seed.ex index 18c2eebe5..b28f02cbe 100644 --- a/lib/mix/tasks/seed.ex +++ b/lib/mix/tasks/seed.ex @@ -33,6 +33,5 @@ defmodule Mix.Tasks.Seed do [], [] ) - |> IO.inspect() end end diff --git a/test/realtime/api_test.exs b/test/realtime/api_test.exs index c2debef15..03dc574b4 100644 --- a/test/realtime/api_test.exs +++ b/test/realtime/api_test.exs @@ -67,7 +67,7 @@ defmodule Realtime.ApiTest do assert {:error, %Ecto.Changeset{}} = Api.create_tenant(@invalid_attrs) end - test "get_dec_tenant_by_external_id/1" do + test "check get_dec_tenant_by_external_id/1" do tenant = tenant_fixture() %Tenant{extensions: [%Extensions{} = extension]} = From 00051a7777651375e6ef8222bc6f7398d5de608c Mon Sep 17 00:00:00 2001 From: abc3 Date: Tue, 10 May 2022 17:16:32 +0200 Subject: [PATCH 3/4] update test for get_dec_tenant_by_external_id --- test/realtime/api_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/realtime/api_test.exs b/test/realtime/api_test.exs index 03dc574b4..d2bf9c3ff 100644 --- a/test/realtime/api_test.exs +++ b/test/realtime/api_test.exs @@ -71,7 +71,7 @@ defmodule Realtime.ApiTest do tenant = tenant_fixture() %Tenant{extensions: [%Extensions{} = extension]} = - Api.get_dec_tenant_by_external_id("some external_id") + Api.get_dec_tenant_by_external_id("external_id") assert Map.has_key?(extension.settings, "db_password") password = extension.settings["db_password"] From 56cb06544fec1ffbaa80099019cb6d589556ed9c Mon Sep 17 00:00:00 2001 From: abc3 Date: Tue, 10 May 2022 17:52:12 +0200 Subject: [PATCH 4/4] update moduledoc --- lib/extensions/postgres/postgres_subscriptions.ex | 3 +++ lib/realtime/helpers.ex | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lib/extensions/postgres/postgres_subscriptions.ex b/lib/extensions/postgres/postgres_subscriptions.ex index aa2d75d39..12dfda54d 100644 --- a/lib/extensions/postgres/postgres_subscriptions.ex +++ b/lib/extensions/postgres/postgres_subscriptions.ex @@ -1,4 +1,7 @@ defmodule Extensions.Postgres.Subscriptions do + @moduledoc """ + This module consolidates subscriptions handling + """ require Logger import Postgrex, only: [query: 3] diff --git a/lib/realtime/helpers.ex b/lib/realtime/helpers.ex index 20674b128..24f93f700 100644 --- a/lib/realtime/helpers.ex +++ b/lib/realtime/helpers.ex @@ -1,4 +1,7 @@ defmodule Realtime.Helpers do + @moduledoc """ + This module includes helper functions for different contexts that can't be union in one module. + """ def encrypt(secret_key, text) do :crypto.crypto_one_time(:aes_128_ecb, secret_key, pad(text), true) |> Base.encode64()