diff --git a/lib/extensions/postgres/postgres_subscriptions.ex b/lib/extensions/postgres/postgres_subscriptions.ex index b643a4620..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] @@ -155,7 +158,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/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/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() diff --git a/test/realtime/api_test.exs b/test/realtime/api_test.exs index c9808048a..d2bf9c3ff 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: "external_id", @@ -67,6 +67,17 @@ defmodule Realtime.ApiTest do assert {:error, %Ecto.Changeset{}} = Api.create_tenant(@invalid_attrs) end + test "check get_dec_tenant_by_external_id/1" do + tenant = tenant_fixture() + + %Tenant{extensions: [%Extensions{} = extension]} = + Api.get_dec_tenant_by_external_id("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)