diff options
| author | adambrangenberg <adabran06@gmail.com> | 2025-12-24 05:09:27 +0100 |
|---|---|---|
| committer | adambrangenberg <adabran06@gmail.com> | 2025-12-24 05:11:14 +0100 |
| commit | 3e2060422ed51096fc71148c55c47d5767593846 (patch) | |
| tree | e73102ce5b43938b36941f1ad84807d548fd0b02 /src/Endpoints | |
| parent | 34cba7d0f9faffe7b97692ccc6b3402fced63cbb (diff) | |
Section 5: Capabilities complete
Diffstat (limited to 'src/Endpoints')
| -rw-r--r-- | src/Endpoints/CapabilitiesEndpoint.hs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/Endpoints/CapabilitiesEndpoint.hs b/src/Endpoints/CapabilitiesEndpoint.hs new file mode 100644 index 0000000..92fefba --- /dev/null +++ b/src/Endpoints/CapabilitiesEndpoint.hs @@ -0,0 +1,31 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE OverloadedStrings #-} + +module Endpoints.CapabilitiesEndpoint (CapabilitiesAPI, capabilitiesServer) where + +import Servant +import qualified Data.Map as Map + +import Model.Capabilities + +---------------------------------------------------------------------------------------------------- +type CapabilitiesAPI = GetCapabilities + +capabilitiesServer :: Server CapabilitiesAPI +capabilitiesServer = handleCapabilitiesGet + +--- GET /_matrix/client/v3/capabilities ------------------------------------------------------------ +type GetCapabilities = "_matrix" :> "client" :> "v3" :> "capabilities" + :> Get '[JSON] CapabilitiesResponse + +handleCapabilitiesGet :: Handler CapabilitiesResponse +handleCapabilitiesGet = return $ CapabilitiesResponse + { pid_changes = BooleanCapability False + , change_password = BooleanCapability False + , get_login_token = BooleanCapability False + , profile_fields = ProfileFieldsCapability False Nothing Nothing + , room_versions = RoomVersionsCapability "12" $ Map.singleton "12" "stable" + , set_avatar_url = BooleanCapability False + , set_display_name = BooleanCapability False + } |