diff options
| author | adambrangenberg <adabran06@gmail.com> | 2025-12-24 03:40:10 +0100 |
|---|---|---|
| committer | adambrangenberg <adabran06@gmail.com> | 2025-12-24 03:40:10 +0100 |
| commit | a0886694f73fc382d78da79ab8bfb27475757bab (patch) | |
| tree | 652ba9b603a1acaf4dfca188f7bb2c29c6bccfd0 /src/Endpoints/WellKnownEndpoint.hs | |
| parent | 2b48a574e8b9fed03a5c1969af4bb1e338f1be26 (diff) | |
Implemented basic auth, refactor
Diffstat (limited to 'src/Endpoints/WellKnownEndpoint.hs')
| -rw-r--r-- | src/Endpoints/WellKnownEndpoint.hs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/Endpoints/WellKnownEndpoint.hs b/src/Endpoints/WellKnownEndpoint.hs new file mode 100644 index 0000000..c63c5e5 --- /dev/null +++ b/src/Endpoints/WellKnownEndpoint.hs @@ -0,0 +1,37 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE TypeOperators #-} + +module Endpoints.WellKnownEndpoint (WellKnownAPI, wellKnownServer) where + +import Servant +import Data.Text (pack) + +import Model.WellKnown + +---------------------------------------------------------------------------------------------------- + +type WellKnownAPI = GetWellKnownClient :<|> GetWellKnownSupport + +wellKnownServer :: Server WellKnownAPI +wellKnownServer = handleWellKnownClientGet :<|> handleWellKnownSupportGet +--- GET /.well-known/matrix/client ----------------------------------------------------------------- + +type GetWellKnownClient = ".well-known" :> "matrix" :> "client" + :> Get '[JSON] WellKnownClientResponse + +handleWellKnownClientGet :: Handler WellKnownClientResponse +handleWellKnownClientGet = return $ WellKnownClientResponse + { homeserver = BaseUrlHolder (pack "http://localhost:8080") + , identity_server = BaseUrlHolder (pack "https://vector.im") + } + +--- GET /.well-known/matrix/support ---------------------------------------------------------------- +type GetWellKnownSupport = ".well-known" :> "matrix" :> "support" + :> Get '[JSON] WellKnownSupportResponse + +handleWellKnownSupportGet :: Handler WellKnownSupportResponse +handleWellKnownSupportGet = return $ WellKnownSupportResponse + { contacts = [Contact (pack "email") (pack "mxid") (pack "m.role.admin")] + , support_page = pack "http://localhost:8080/support.html" + } + |