diff options
Diffstat (limited to 'lib/nola_web/router.ex')
-rw-r--r-- | lib/nola_web/router.ex | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/lib/nola_web/router.ex b/lib/nola_web/router.ex new file mode 100644 index 0000000..5658fda --- /dev/null +++ b/lib/nola_web/router.ex @@ -0,0 +1,85 @@ +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 |