summaryrefslogtreecommitdiff
path: root/lib/matrix_app_service_web
diff options
context:
space:
mode:
authorPierre de Lacroix <pierre@pdelacroix.com>2020-09-18 16:31:24 +0200
committerPierre de Lacroix <pierre@pdelacroix.com>2020-09-18 16:31:24 +0200
commit3d8d3f1d387a7081b0f9ed5e1a62b14a28e87981 (patch)
tree5ae669cc1ec5d1666b047abe4a9ae4805b12afb9 /lib/matrix_app_service_web
parentMerge branch 'test/matrix_app_auth_plug' into 'master' (diff)
refacto WIP
Diffstat (limited to 'lib/matrix_app_service_web')
-rw-r--r--lib/matrix_app_service_web/endpoint.ex45
-rw-r--r--lib/matrix_app_service_web/router.ex26
2 files changed, 23 insertions, 48 deletions
diff --git a/lib/matrix_app_service_web/endpoint.ex b/lib/matrix_app_service_web/endpoint.ex
deleted file mode 100644
index 0ee00fc..0000000
--- a/lib/matrix_app_service_web/endpoint.ex
+++ /dev/null
@@ -1,45 +0,0 @@
-defmodule MatrixAppServiceWeb.Endpoint do
- use Phoenix.Endpoint, otp_app: :matrix_app_service
-
- # The session will be stored in the cookie and signed,
- # this means its contents can be read but not tampered with.
- # Set :encryption_salt if you would also like to encrypt it.
- @session_options [
- store: :cookie,
- key: "_matrix_app_service_key",
- signing_salt: "zE7AHynD"
- ]
-
- socket "/socket", MatrixAppServiceWeb.UserSocket,
- websocket: true,
- longpoll: false
-
- # Serve at "/" the static files from "priv/static" directory.
- #
- # You should set gzip to true if you are running phx.digest
- # when deploying your static files in production.
- plug Plug.Static,
- at: "/",
- from: :matrix_app_service,
- gzip: false,
- only: ~w(css fonts images js favicon.ico robots.txt)
-
- # Code reloading can be explicitly enabled under the
- # :code_reloader configuration of your endpoint.
- if code_reloading? do
- plug Phoenix.CodeReloader
- end
-
- plug Plug.RequestId
- plug Plug.Telemetry, event_prefix: [:phoenix, :endpoint]
-
- plug Plug.Parsers,
- parsers: [:urlencoded, :multipart, :json],
- pass: ["*/*"],
- json_decoder: Phoenix.json_library()
-
- plug Plug.MethodOverride
- plug Plug.Head
- plug Plug.Session, @session_options
- plug MatrixAppServiceWeb.Router
-end
diff --git a/lib/matrix_app_service_web/router.ex b/lib/matrix_app_service_web/router.ex
index 99f4dfd..21ccc39 100644
--- a/lib/matrix_app_service_web/router.ex
+++ b/lib/matrix_app_service_web/router.ex
@@ -1,7 +1,27 @@
defmodule MatrixAppServiceWeb.Router do
- use MatrixAppServiceWeb, :router
+ defmacro routes() do
+ quote do
+ pipeline :matrix_api do
+ plug :accepts, ["json"]
+ plug MatrixAppServiceWeb.AuthPlug
+ end
- require MatrixAppService.Phoenix.Router
+ path = Application.compile_env(:matrix_app_service, :path, "/")
- MatrixAppService.Phoenix.Router.routes()
+ scope path, MatrixAppServiceWeb.V1 do
+ pipe_through :matrix_api
+
+ put "/transactions/:txn_id", TransactionController, :create
+
+ get "/users/:user_id", UserController, :show
+ get "/rooms/:room_alias", RoomController, :show
+
+ get "/thirdparty/protocol/:protocol", ThirdPartyController, :show
+ get "/thirdparty/user/:protocol", ThirdPartyController, :show
+ get "/thirdparty/location/:protocol", ThirdPartyController, :show
+ get "/thirdparty/location", ThirdPartyController, :show
+ get "/thirdparty/user", ThirdPartyController, :show
+ end
+ end
+ end
end