Skip to content

Commit

Permalink
fix: Data API Response (#244)
Browse files Browse the repository at this point in the history
  • Loading branch information
jonas-martinez authored May 16, 2022
1 parent 9d52428 commit 6844083
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 15 deletions.
32 changes: 17 additions & 15 deletions apps/lenra_web/lib/lenra_web/controllers/data_controller.ex
Original file line number Diff line number Diff line change
Expand Up @@ -5,46 +5,49 @@ 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
end
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
end
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
Expand All @@ -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
Expand Down
28 changes: 28 additions & 0 deletions apps/lenra_web/test/controllers/data_controller_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down

0 comments on commit 6844083

Please sign in to comment.