summaryrefslogblamecommitdiff
path: root/lib/nola_web/router.ex
blob: 5658fda8b624c51bdfa41cb10c87cba117dc714d (plain) (tree)
1
2
3
4
5
6
7
8
9
10

                           

                      
                                  

                       


                                    
                                                      


                  
                                  

     

                                 

                                   

     
                          




                                                                    
                       

                                   
 
                                                               


                                                           
                                                                                    
 


                                           

                                                   
 


                                                                 







                                                                                        

                                                                
                                                                                           
 
                                                
                                         


                                                           
                                                                       

     
                                                                      




                                                             
                                                    








                                                                                
   
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