{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE OverloadedStrings #-} module Endpoints.CapabilitiesEndpoint (CapabilitiesAPI, capabilitiesServer) where import Servant import qualified Data.Map as Map import Model.Capabilities import Auth (UserAuth) import Data.User (User (User)) ---------------------------------------------------------------------------------------------------- type CapabilitiesAPI = GetCapabilities capabilitiesServer :: Server CapabilitiesAPI capabilitiesServer = handleCapabilitiesGet --- GET /_matrix/client/v3/capabilities ------------------------------------------------------------ type GetCapabilities = "_matrix" :> "client" :> "v3" :> "capabilities" :> UserAuth :> Get '[JSON] CapabilitiesResponse handleCapabilitiesGet :: User -> 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 }