Skip to content

Commit 7c3faeb

Browse files
authored
Merge pull request #195 from giusdp/main
Return err when deleting default module
2 parents 5e563be + 2f44c59 commit 7c3faeb

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

apps/core/lib/core_web/controllers/module_controller.ex

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ defmodule CoreWeb.ModuleController do
1818
alias Core.Domain.Modules
1919
alias Core.Schemas.Module
2020

21+
@default_module "_"
22+
2123
action_fallback(CoreWeb.FallbackController)
2224

2325
def index(conn, _params) do
@@ -46,9 +48,15 @@ defmodule CoreWeb.ModuleController do
4648
end
4749

4850
def delete(conn, %{"module_name" => name}) do
49-
with {:ok, module} <- Modules.get_module_by_name(name),
50-
{:ok, %Module{}} <- Modules.delete_module(module) do
51-
send_resp(conn, :no_content, "")
51+
if name == @default_module do
52+
conn
53+
|> put_status(:bad_request)
54+
|> json(%{error: "Cannot delete default module"})
55+
else
56+
with {:ok, module} <- Modules.get_module_by_name(name),
57+
{:ok, %Module{}} <- Modules.delete_module(module) do
58+
send_resp(conn, :no_content, "")
59+
end
5260
end
5361
end
5462
end

apps/core/test/core_web/integration/controllers/module_controller_test.exs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ defmodule CoreWeb.ModuleControllerTest do
2929
}
3030
@invalid_attrs %{name: nil}
3131

32+
@default_module "_"
33+
3234
setup %{conn: conn} do
3335
:ok = Sandbox.checkout(Core.SubjectsRepo)
3436
user = Subjects.get_subject_by_name("guest")
@@ -113,6 +115,11 @@ defmodule CoreWeb.ModuleControllerTest do
113115
conn = get(conn, Routes.function_path(conn, :show, module.name, function.name))
114116
assert response(conn, 404)
115117
end
118+
119+
test "error when deleting default module", %{conn: conn} do
120+
conn = delete(conn, Routes.module_path(conn, :delete, @default_module))
121+
assert response(conn, 400)
122+
end
116123
end
117124

118125
defp create_module(_) do

0 commit comments

Comments
 (0)