mirror of
https://github.com/wanderer-industries/wanderer
synced 2025-12-10 09:45:43 +00:00
51 lines
1.7 KiB
Elixir
51 lines
1.7 KiB
Elixir
defmodule WandererAppWeb.FallbackController do
|
|
use WandererAppWeb, :controller
|
|
|
|
alias WandererAppWeb.Helpers.APIUtils
|
|
|
|
# Handles not_found errors from with/else
|
|
def call(conn, {:error, :not_found}) do
|
|
APIUtils.error_response(conn, :not_found, "Not found", "The requested resource could not be found")
|
|
end
|
|
|
|
# Handles invalid_id errors
|
|
def call(conn, {:error, :invalid_id}) do
|
|
APIUtils.error_response(conn, :bad_request, "Invalid system ID")
|
|
end
|
|
|
|
# Handles invalid_coordinates_format errors
|
|
def call(conn, {:error, :invalid_coordinates_format}) do
|
|
APIUtils.error_response(conn, :bad_request, "Invalid coordinates format. Use %{\"coordinates\" => %{\"x\" => number, \"y\" => number}}")
|
|
end
|
|
|
|
# Handles not_associated errors
|
|
def call(conn, {:error, :not_associated}) do
|
|
APIUtils.error_response(conn, :not_found, "Connection not associated with specified system")
|
|
end
|
|
|
|
# Handles not_involved errors
|
|
def call(conn, {:error, :not_involved}) do
|
|
APIUtils.error_response(conn, :bad_request, "Connection must involve specified system")
|
|
end
|
|
|
|
# Handles creation_failed errors
|
|
def call(conn, {:error, :creation_failed}) do
|
|
APIUtils.error_response(conn, :internal_server_error, "Failed to create resource")
|
|
end
|
|
|
|
# Handles deletion_failed errors
|
|
def call(conn, {:error, :deletion_failed}) do
|
|
APIUtils.error_response(conn, :internal_server_error, "Failed to delete resource")
|
|
end
|
|
|
|
# Handles any other {:error, message} returns
|
|
def call(conn, {:error, msg}) when is_binary(msg) do
|
|
APIUtils.error_response(conn, :bad_request, msg)
|
|
end
|
|
|
|
# Handles any other unmatched errors
|
|
def call(conn, _error) do
|
|
APIUtils.error_response(conn, :internal_server_error, "An unexpected error occurred")
|
|
end
|
|
end
|