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/prompt/:id", GptController, :task
get "/-/gpt/result/: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
get "/:network/:chan/gpt/prompt/:id", GptController, :task
get "/:network/:chan/gpt/result/:id", GptController, :result
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