From 68440839dd9dc31110a6f76b0f5636aade8463d0 Mon Sep 17 00:00:00 2001 From: Jonas Martinez <36544012+jonas-martinez@users.noreply.github.com> Date: Mon, 16 May 2022 16:36:49 +0200 Subject: [PATCH] fix: Data API Response (#244) --- .../lenra_web/controllers/data_controller.ex | 32 ++++++++++--------- .../test/controllers/data_controller_test.exs | 28 ++++++++++++++++ 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/apps/lenra_web/lib/lenra_web/controllers/data_controller.ex b/apps/lenra_web/lib/lenra_web/controllers/data_controller.ex index f506df27..7d919120 100644 --- a/apps/lenra_web/lib/lenra_web/controllers/data_controller.ex +++ b/apps/lenra_web/lib/lenra_web/controllers/data_controller.ex @@ -5,8 +5,8 @@ defmodule LenraWeb.DataController do alias Lenra.DataServices def get(conn, params) do - with session_assings <- Plug.current_resource(conn), - result <- DataServices.get(session_assings.environment.id, params["_datastore"], params["_id"]) do + with session_assigns <- Plug.current_resource(conn), + result <- DataServices.get(session_assigns.environment.id, params["_datastore"], params["_id"]) do conn |> assign_all(result.data) |> reply @@ -14,17 +14,17 @@ defmodule LenraWeb.DataController do end def get_all(conn, params) do - with session_assings <- Plug.current_resource(conn), - result <- DataServices.get_all(session_assings.environment.id, params["_datastore"]) do + with session_assigns <- Plug.current_resource(conn), + result <- DataServices.get_all(session_assigns.environment.id, params["_datastore"]) do conn |> assign_all(Enum.map(result, fn r -> r.data end)) |> reply end end - def get_me(conn, params) do - with session_assings <- Plug.current_resource(conn), - result <- DataServices.get_me(session_assings.environment.id, session_assings.user.id) do + def get_me(conn, _params) do + with session_assigns <- Plug.current_resource(conn), + result <- DataServices.get_me(session_assigns.environment.id, session_assigns.user.id) do conn |> assign_data(:user_data, result) |> reply @@ -32,19 +32,22 @@ defmodule LenraWeb.DataController do end def create(conn, params) do - with session_assings <- Plug.current_resource(conn), + with session_assigns <- Plug.current_resource(conn), {:ok, %{inserted_data: data}} <- - DataServices.create(session_assings.environment.id, params) do + DataServices.create(session_assigns.environment.id, params), + result <- DataServices.get(session_assigns.environment.id, params["_datastore"], data.id) do conn - |> assign_data(:inserted_data, data) + |> assign_data(:inserted_data, result) |> reply end end def update(conn, params) do - with {:ok, %{updated_data: data}} <- DataServices.update(params) do + with session_assigns <- Plug.current_resource(conn), + {:ok, %{updated_data: data}} <- DataServices.update(params), + result <- DataServices.get(session_assigns.environment.id, params["_datastore"], data.id) do conn - |> assign_data(:updated_data, data) + |> assign_data(:updated_data, result) |> reply end end @@ -58,9 +61,8 @@ defmodule LenraWeb.DataController do end def query(conn, params) do - with session_assings <- Plug.current_resource(conn), - data <- - DataServices.parse_and_exec_query(params, session_assings.environment.id, session_assings.user.id) do + with session_assigns <- Plug.current_resource(conn), + data <- DataServices.parse_and_exec_query(params, session_assigns.environment.id, session_assigns.user.id) do conn |> assign_all(data) |> reply diff --git a/apps/lenra_web/test/controllers/data_controller_test.exs b/apps/lenra_web/test/controllers/data_controller_test.exs index 1e1fdcf1..d5116596 100644 --- a/apps/lenra_web/test/controllers/data_controller_test.exs +++ b/apps/lenra_web/test/controllers/data_controller_test.exs @@ -103,6 +103,20 @@ defmodule LenraWeb.DataControllerTest do "name" => "toto" }) + assert %{ + "data" => %{ + "inserted_data" => %{ + "data" => %{ + "_datastore" => "test", + "_id" => _id, + "_refBy" => [], + "_refs" => [], + "name" => "toto" + } + } + } + } = json_response(conn, 200) + assert Map.has_key?(json_response(conn, 200), "data") end @@ -173,6 +187,20 @@ defmodule LenraWeb.DataControllerTest do "name" => "test" }) + assert %{ + "data" => %{ + "updated_data" => %{ + "data" => %{ + "_datastore" => "test", + "_id" => _id, + "_refBy" => [], + "_refs" => [], + "name" => "test" + } + } + } + } = json_response(conn, 200) + assert Map.has_key?(json_response(conn, 200), "data") end