summaryrefslogtreecommitdiff
path: root/lib/web/router.ex
blob: 18509acc82dde94134f0944f52b516a28bd5def1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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