defmodule NullaWeb.Router do use NullaWeb, :router pipeline :browser do plug :accepts, ["html", "json", "activity+json", "ld+json"] plug :fetch_session plug :fetch_live_flash plug :put_root_layout, html: {NullaWeb.Layouts, :root} # plug :protect_from_forgery # plug :put_secure_browser_headers end pipeline :api do plug :accepts, ["json"] end scope "/", NullaWeb do pipe_through :browser get "/", PageController, :home get "/.well-known/host-meta", HostmetaController, :index get "/.well-known/webfinger", WebfingerController, :index get "/.well-known/nodeinfo", NodeinfoController, :index get "/nodeinfo/2.0", NodeinfoController, :show post "/inbox", InboxController, :inbox scope "/auth" do post "/", AuthController, :sign_up post "/sign_in", AuthController, :sign_in delete "/sign_out", AuthController, :sign_out get "/sign_up", PageController, :sign_up get "/sign_in", PageController, :sign_in end scope "/users/:username" do get "/", ActorController, :show get "/following", FollowController, :following get "/followers", FollowController, :followers post "/inbox", InboxController, :inbox get "/outbox", OutboxController, :outbox get "/notes/:id", NoteController, :show end scope "/@:username" do get "/", ActorController, :show get "/following", FollowController, :following get "/followers", FollowController, :followers post "/inbox", InboxController, :inbox get "/outbox", OutboxController, :outbox get "/:id", NoteController, :show end end # Other scopes may use custom stacks. # scope "/api", NullaWeb do # pipe_through :api # end # Enable LiveDashboard and Swoosh mailbox preview in development if Application.compile_env(:nulla, :dev_routes) do # If you want to use the LiveDashboard in production, you should put # it behind authentication and allow only admins to access it. # If your application does not have an admins-only section yet, # you can use Plug.BasicAuth to set up some basic authentication # as long as you are also using SSL (which you should anyway). import Phoenix.LiveDashboard.Router scope "/dev" do pipe_through :browser live_dashboard "/dashboard", metrics: NullaWeb.Telemetry forward "/mailbox", Plug.Swoosh.MailboxPreview end end end