defmodule NolaWeb.Router do use NolaWeb, :router pipeline :browser do plug(:accepts, ["html", "txt"]) plug(:fetch_session) plug(:fetch_flash) plug(:fetch_live_flash) plug(:protect_from_forgery) plug(:put_secure_browser_headers) plug(:put_root_layout, {NolaWeb.LayoutView, :root}) end pipeline :api do plug(:accepts, ["json", "sse"]) end pipeline :matrix_app_service do plug(:accepts, ["json"]) plug(Nola.Matrix.Plug.Auth) plug(Nola.Matrix.Plug.SetConfig) end scope "/api", NolaWeb do pipe_through(:api) get("/irc-auth.sse", IrcAuthSseController, :sse) post("/sms/callback/Ovh", SmsController, :ovh_callback, as: :sms) end scope "/", NolaWeb do pipe_through(:browser) get("/", PageController, :index) get("/login/irc/:token", PageController, :token, as: :login) get("/login/oidc", OpenIdController, :login) get("/login/oidc/callback", OpenIdController, :callback) get("/api/untappd/callback", UntappdController, :callback, as: :untappd_callback) get("/-", IrcController, :index) get("/-/txt", IrcController, :txt) get("/-/txt/:name", IrcController, :txt) get("/-/gpt", GptController, :index) get("/-/gpt/p/:id", GptController, :task) get("/-/gpt/r/:id", GptController, :result) get("/-/alcoolog", AlcoologController, :index) get("/-/alcoolog/~/:account_name", AlcoologController, :index) get("/:network", NetworkController, :index) get("/:network/~:nick/alcoolog", AlcoologController, :nick) get("/:network/~:nick/alcoolog/log.json", AlcoologController, :nick_log_json) get("/:network/~:nick/alcoolog/gls.json", AlcoologController, :nick_gls_json) get("/:network/~:nick/alcoolog/volumes.json", AlcoologController, :nick_volumes_json) get("/:network/~:nick/alcoolog/history.json", AlcoologController, :nick_history_json) get("/:network/~:nick/alcoolog/stats.json", AlcoologController, :nick_stats_json) get("/:network/:chan/alcoolog", AlcoologController, :index) get("/:network/:chan/alcoolog/gls.json", AlcoologController, :index_gls_json) put("/api/alcoolog/minisync/:user_id/meta/:key", AlcoologController, :minisync_put_meta) get("/:network/:chan", IrcController, :index) live("/:network/:chan/live", ChatLive) get("/:network/:chan/txt", IrcController, :txt) get("/:network/:chan/txt/:name", IrcController, :txt) get("/:network/:channel/preums", IrcController, :preums) get("/:network/:chan/alcoolog/t/:token", AlcoologController, :token) end scope "/_matrix/:appservice", MatrixAppServiceWeb.V1, as: :matrix do pipe_through(:matrix_app_service) put("/transactions/:txn_id", TransactionController, :push) get("/users/:user_id", UserController, :query) get("/rooms/*room_alias", RoomController, :query) get("/thirdparty/protocol/:protocol", ThirdPartyController, :query_protocol) get("/thirdparty/user/:protocol", ThirdPartyController, :query_users) get("/thirdparty/location/:protocol", ThirdPartyController, :query_locations) get("/thirdparty/location", ThirdPartyController, :query_location_by_alias) get("/thirdparty/user", ThirdPartyController, :query_user_by_id) end end