mirror of
https://github.com/kevin-DL/phoenix_api_template.git
synced 2026-01-11 18:54:33 +00:00
50 lines
1.1 KiB
Elixir
50 lines
1.1 KiB
Elixir
defmodule PhoenixApiTemplateWeb.Router do
|
|
use PhoenixApiTemplateWeb, :router
|
|
use Plug.ErrorHandler
|
|
|
|
def handle_errors(conn, %{reason: %Phoenix.Router.NoRouteError{message: message}}) do
|
|
conn
|
|
|> json(%{errors: message})
|
|
|> halt()
|
|
end
|
|
|
|
def handle_errors(conn, %{reason: %{message: message}}) do
|
|
conn
|
|
|> json(%{errors: message})
|
|
|> halt()
|
|
end
|
|
|
|
def handle_errors(conn, error) do
|
|
IO.inspect(error)
|
|
|
|
conn
|
|
|> json(%{errors: "unknown error"})
|
|
|> halt()
|
|
end
|
|
|
|
pipeline :api do
|
|
plug(:accepts, ["json"])
|
|
plug :fetch_session
|
|
end
|
|
|
|
pipeline :auth do
|
|
plug PhoenixApiTemplateWeb.Auth.Pipeline
|
|
plug PhoenixApiTemplateWeb.Auth.SetUser
|
|
end
|
|
|
|
scope "/api", PhoenixApiTemplateWeb do
|
|
pipe_through(:api)
|
|
|
|
get("/", DefaultController, :index)
|
|
post("/register", UserController, :create)
|
|
post("/login", UserController, :sign_in)
|
|
end
|
|
|
|
scope "/api", PhoenixApiTemplateWeb do
|
|
pipe_through([:api, :auth])
|
|
|
|
get "/users/by_id/:id", UserController, :show
|
|
put "/users/:id", UserController, :update
|
|
end
|
|
end
|