defmodule ClacksWeb.Router do use ClacksWeb, :router pipeline :browser do plug :accepts, ["html"] plug :fetch_session plug :fetch_flash plug :protect_from_forgery plug :put_secure_browser_headers plug ClacksWeb.Plug.WebAuthenticate, on_failure: :pass end pipeline :browser_authenticated do plug ClacksWeb.Plug.WebAuthenticate, on_failure: :redirect_to_login end pipeline :activitypub do plug :accepts, ["activity+json", "html"] end scope "/", ClacksWeb do pipe_through :browser get "/login", LoginController, :login post "/login", LoginController, :login_post post "/logout", LoginController, :logout_post end scope "/", ClacksWeb do pipe_through :browser pipe_through :browser_authenticated end scope "/", ClacksWeb do pipe_through :activitypub get "/objects/:id", ObjectsController, :get get "/users/:nickname", ActorController, :get get "/users/:nickname/followers", ActorController, :followers get "/users/:nickname/following", ActorController, :following post "/inbox", InboxController, :shared post "/users/:nickname/inbox", InboxController, :user_specific get "/.well-known/webfinger", WebFingerController, :get end # Other scopes may use custom stacks. # scope "/api", ClacksWeb do # pipe_through :api # end end