diff options
Diffstat (limited to 'src/Endpoints/CapabilitiesEndpoint.hs')
| -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 + } |