{-# 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 }