Documentation
¶
Index ¶
- Constants
- Variables
- func AddUserInfo(ctx context.Context, r *external.PostUserInfoRequest, ...) (int, core.Coder)
- func BuildMembershipAndFireEvents(ctx context.Context, rooms []string, newProfile authtypes.Profile, ...)
- func CheckAndSave3PIDAssociation() (int, core.Coder)
- func CreateRoom(ctx context.Context, r *external.PostCreateRoomRequest, userID string, ...) (int, core.Coder)
- func DeleteDeviceByID(ctx context.Context, delReq *external.DelDeviceRequest, deviceID string, ...) (int, core.Coder)
- func DeleteDevices(ctx context.Context, req *external.PostDelDevicesRequest, ...) (int, core.Coder)
- func DeleteRoomTag(ctx context.Context, req *external.DelRoomsTagsByIDRequest, ...) (int, core.Coder)
- func DeleteUserInfo(ctx context.Context, req *external.DeleteUserInfoRequest, cfg config.Dendrite, ...) (int, core.Coder)
- func DirectoryRoom(ctx context.Context, roomAlias string, federation *fed.Federation, ...) (int, core.Coder)
- func DismissRoom(ctx context.Context, req *external.DismissRoomRequest, ...) (int, core.Coder)
- func Forget3PID() (int, core.Coder)
- func GenNewToken(ctx context.Context, deviceDB model.DeviceDatabase, device *authtypes.Device, ...) (int, core.Coder)
- func GetAssociated3PIDs() (int, core.Coder)
- func GetAvatarURL(ctx context.Context, userID string, cfg config.Dendrite, ...) (int, core.Coder)
- func GetDeviceByID(cache service.Cache, userID, deviceID string) (int, core.Coder)
- func GetDevicesByUserID(cache service.Cache, userID string) (int, core.Coder)
- func GetDisplayName(ctx context.Context, userID string, cfg config.Dendrite, ...) (int, core.Coder)
- func GetFilter(ctx context.Context, req *external.GetUserFilterRequest, userID string, ...) (int, core.Coder)
- func GetPresenceByID(rpcCli *common.RpcClient, cache service.Cache, federation *fed.Federation, ...) (int, core.Coder)
- func GetPresenceListByID() (int, core.Coder)
- func GetProfile(ctx context.Context, req *external.GetProfileRequest, cfg config.Dendrite, ...) (int, core.Coder)
- func GetProfiles(ctx context.Context, req *external.GetProfilesRequest, cfg config.Dendrite, ...) (int, core.Coder)
- func GetRoomTags(ctx context.Context, cache service.Cache, userID string, ...) (int, core.Coder)
- func GetSuperAdminToken(ctx context.Context, deviceDB model.DeviceDatabase, device *authtypes.Device, ...) (int, core.Coder)
- func GetUserInfo(ctx context.Context, req *external.GetUserInfoRequest, cfg config.Dendrite, ...) (int, core.Coder)
- func GetUserInfoList(ctx context.Context, req *external.GetUserInfoListRequest, cfg config.Dendrite, ...) (int, core.Coder)
- func GetVisibility(ctx context.Context, roomID string, rsRpcCli roomserverapi.RoomserverRPCAPI) (int, core.Coder)
- func GetWhoAmi(userID string) (int, core.Coder)
- func JoinRoomByIDOrAlias(ctx context.Context, r *external.PostRoomsJoinByAliasRequest, userID string, ...) (int, core.Coder)
- func LegacyRegister(ctx context.Context, req *external.LegacyRegisterRequest, ...) (int, core.Coder)
- func LoginGet(ctx context.Context, req *external.GetLoginRequest, ...) (int, core.Coder)
- func LoginPost(ctx context.Context, req *external.PostLoginRequest, ...) (int, core.Coder)
- func Logout(ctx context.Context, deviceDB model.DeviceDatabase, userID, deviceID string, ...) (int, core.Coder)
- func LogoutAll(ctx context.Context, deviceDB model.DeviceDatabase, userID, deviceID string, ...) (int, core.Coder)
- func LogoutDevice(ctx context.Context, userID, deviceID string, deviceDB model.DeviceDatabase, ...)
- func OnAddServerNames(ctx context.Context, cache service.Cache, serverConfDB model.ConfigDatabase, ...)
- func OnDelServerNames(ctx context.Context, cache service.Cache, serverConfDB model.ConfigDatabase, ...)
- func OnGetServerNameCfg(serverConfDB model.ConfigDatabase, cache service.Cache, cfg config.Dendrite) (int, core.Coder)
- func OnRoomInfoRequest(ctx context.Context, userID string, roomIDs []string, ...) (int, core.Coder)
- func OnRoomJoinedRequest(ctx context.Context, userID, roomID string, ...) (int, core.Coder)
- func OnUpdateServerNameCfg(ctx context.Context, req *external.ServerNameCfgRequest, ...) (int, core.Coder)
- func PostEvent(ctx context.Context, req *external.PutRoomStateByTypeWithTxnID, ...) (int, core.Coder)
- func PutFilter(ctx context.Context, filter *external.PostUserFilterRequest, userID string, ...) (int, core.Coder)
- func QueryRoomInfo(ctx context.Context, roomID string, rpcCli roomserverapi.RoomserverRPCAPI) (roomInfo *external.GetRoomInfo, err error)
- func RedactEvent(ctx context.Context, content []byte, userID, deviceID string, roomID string, ...) (int, core.Coder)
- func Register(ctx context.Context, req *external.PostRegisterRequest, ...) (int, core.Coder)
- func RegisterAvailable() (int, core.Coder)
- func RemoveLocalAlias(ctx context.Context, userID string, alias string, ...) (int, core.Coder)
- func RequestEmailToken() (int, core.Coder)
- func RequestTurnServer(ctx context.Context, userID string, cfg config.Dendrite) (int, core.Coder)
- func SaveAccountData(ctx context.Context, accountDB model.AccountsDatabase, deviceID string, ...) (int, core.Coder)
- func SendMembership(ctx context.Context, r *external.PostRoomsMembershipRequest, ...) (int, core.Coder)
- func SetAvatarURL(ctx context.Context, r *external.PutAvatarURLRequest, ...) (int, core.Coder)
- func SetDisplayName(ctx context.Context, r *external.PutDisplayNameRequest, ...) (int, core.Coder)
- func SetLocalAlias(ctx context.Context, req *external.PutDirectoryRoomAliasRequest, userID string, ...) (int, core.Coder)
- func SetRoomTag(ctx context.Context, req *external.PutRoomsTagsByIDRequest, ...) (int, core.Coder)
- func SetUserInfo(ctx context.Context, r *external.PutUserInfoRequest, ...) (int, core.Coder)
- func UpdateDeviceByID(ctx context.Context, r *external.PutDeviceRequest, ...) (int, core.Coder)
- func UpdatePresenceByID(ctx context.Context, reqContent *external.PutPresenceRequest, ...) (int, core.Coder)
- func UpdatePresenceListByID() (int, core.Coder)
- func UsernameIsWithinApplicationServiceNamespace(cfg *config.Dendrite, username string, appService *config.ApplicationService) bool
- func UsernameMatchesMultipleExclusiveNamespaces(cfg *config.Dendrite, username string) bool
Constants ¶
const MaxReqRooms = 50
const MaxReqUserInfoUsers = 50
Variables ¶
var ( ErrRoomDontExist = errors.New("Room does not exist") ErrQryRoomState = errors.New("Query room state failed") )
Functions ¶
func AddUserInfo ¶
func AddUserInfo( ctx context.Context, r *external.PostUserInfoRequest, accountDB model.AccountsDatabase, userID string, cfg *config.Dendrite, cache service.Cache, rsRpcCli roomserverapi.RoomserverRPCAPI, idg *uid.UidGenerator, complexCache *common.ComplexCache, ) (int, core.Coder)
AddUserInfo implements POST /user_info/{userID}
func BuildMembershipAndFireEvents ¶
func BuildMembershipAndFireEvents( ctx context.Context, rooms []string, newProfile authtypes.Profile, userID string, cfg *config.Dendrite, rpcCli roomserverapi.RoomserverRPCAPI, idg *uid.UidGenerator, )
func CheckAndSave3PIDAssociation ¶
CheckAndSave3PIDAssociation implements POST /account/3pid
func CreateRoom ¶
func CreateRoom(ctx context.Context, r *external.PostCreateRoomRequest, userID string, cfg config.Dendrite, accountDB model.AccountsDatabase, rpcCli roomserverapi.RoomserverRPCAPI, cache service.Cache, idg *uid.UidGenerator, complexCache *common.ComplexCache, ) (int, core.Coder)
CreateRoom implements /createRoom
func DeleteDeviceByID ¶
func DeleteDeviceByID( ctx context.Context, delReq *external.DelDeviceRequest, deviceID string, cfg config.Dendrite, cache service.Cache, encryptDB model.EncryptorAPIDatabase, tokenFilter *filter.Filter, syncDB model.SyncAPIDatabase, deviceDB model.DeviceDatabase, rpcClient *common.RpcClient, ) (int, core.Coder)
DeleteDeviceByID handles Delete on /devices/{deviceID} Deletes the given device, and invalidates any access token associated with it. accountDB model.AccountsDatabase, deviceDB model.DeviceDatabase,
func DeleteDevices ¶
func DeleteDevices( ctx context.Context, req *external.PostDelDevicesRequest, device *authtypes.Device, cache service.Cache, encryptDB model.EncryptorAPIDatabase, tokenFilter *filter.Filter, syncDB model.SyncAPIDatabase, deviceDB model.DeviceDatabase, rpcClient *common.RpcClient, ) (int, core.Coder)
func DeleteRoomTag ¶
func DeleteUserInfo ¶
func DeleteUserInfo( ctx context.Context, req *external.DeleteUserInfoRequest, cfg config.Dendrite, federation *fed.Federation, accountDB model.AccountsDatabase, cache service.Cache, ) (int, core.Coder)
DeleteUserInfo implements DELETE /user_info/{userID}
func DirectoryRoom ¶
func DirectoryRoom( ctx context.Context, roomAlias string, federation *fed.Federation, cfg *config.Dendrite, rpcCli roomserverapi.RoomserverRPCAPI, ) (int, core.Coder)
DirectoryRoom looks up a room alias
func DismissRoom ¶
func DismissRoom( ctx context.Context, req *external.DismissRoomRequest, accountDB model.AccountsDatabase, ownerID, deviceID, roomID string, cfg config.Dendrite, rpcCli roomserverapi.RoomserverRPCAPI, federation *fed.Federation, cache service.Cache, idg *uid.UidGenerator, complexCache *common.ComplexCache, ) (int, core.Coder)
func Forget3PID ¶
Forget3PID implements POST /account/3pid/delete
func GenNewToken ¶
func GetAssociated3PIDs ¶
GetAssociated3PIDs implements GET /account/3pid
func GetAvatarURL ¶
func GetAvatarURL( ctx context.Context, userID string, cfg config.Dendrite, accountDB model.AccountsDatabase, cache service.Cache, federation *fed.Federation, complexCache *common.ComplexCache, roomDB model.RoomServerDatabase, ) (int, core.Coder)
GetAvatarURL implements GET /profile/{userID}/avatar_url
func GetDeviceByID ¶
GetDeviceByID handles /device/{deviceID}
func GetDevicesByUserID ¶
GetDevicesByUserID handles /devices
func GetDisplayName ¶
func GetDisplayName( ctx context.Context, userID string, cfg config.Dendrite, accountDB model.AccountsDatabase, cache service.Cache, federation *fed.Federation, complexCache *common.ComplexCache, roomDB model.RoomServerDatabase, ) (int, core.Coder)
GetDisplayName implements GET /profile/{userID}/displayname
func GetFilter ¶
func GetFilter( ctx context.Context, req *external.GetUserFilterRequest, userID string, cache service.Cache, ) (int, core.Coder)
GetFilter implements GET /_matrix/client/r0/user/{userId}/filter/{filterId}
func GetPresenceByID ¶
func GetPresenceListByID ¶
func GetProfile ¶
func GetProfile( ctx context.Context, req *external.GetProfileRequest, cfg config.Dendrite, federation *fed.Federation, accountDB model.AccountsDatabase, cache service.Cache, complexCache *common.ComplexCache, roomDB model.RoomServerDatabase, ) (int, core.Coder)
GetProfile implements GET /profile/{userID}
func GetProfiles ¶
func GetProfiles( ctx context.Context, req *external.GetProfilesRequest, cfg config.Dendrite, federation *fed.Federation, accountDB model.AccountsDatabase, cache service.Cache, complexCache *common.ComplexCache, roomDB model.RoomServerDatabase, ) (int, core.Coder)
GetProfiles implements GET /profiles
func GetRoomTags ¶
func GetSuperAdminToken ¶
func GetUserInfo ¶
func GetUserInfo( ctx context.Context, req *external.GetUserInfoRequest, cfg config.Dendrite, federation *fed.Federation, accountDB model.AccountsDatabase, cache service.Cache, ) (int, core.Coder)
GetUserInfo implements GET /user_info/{userID}
func GetUserInfoList ¶
func GetUserInfoList( ctx context.Context, req *external.GetUserInfoListRequest, cfg config.Dendrite, federation *fed.Federation, accountDB model.AccountsDatabase, cache service.Cache, ) (int, core.Coder)
GetUserInfoList implements GET /user_info_list
func GetVisibility ¶
func GetVisibility( ctx context.Context, roomID string, rsRpcCli roomserverapi.RoomserverRPCAPI, ) (int, core.Coder)
GetVisibility implements GET /directory/list/room/{roomID}
func JoinRoomByIDOrAlias ¶
func JoinRoomByIDOrAlias( ctx context.Context, r *external.PostRoomsJoinByAliasRequest, userID string, roomIDOrAlias string, cfg config.Dendrite, federation *fed.Federation, rpcCli roomserverapi.RoomserverRPCAPI, keyRing gomatrixserverlib.KeyRing, cache service.Cache, idg *uid.UidGenerator, complexCache *common.ComplexCache, ) (int, core.Coder)
JoinRoomByIDOrAlias implements the "/join/{roomIDOrAlias}" API. https://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-join-roomidoralias
func LegacyRegister ¶
func LegacyRegister( ctx context.Context, req *external.LegacyRegisterRequest, accountDB model.AccountsDatabase, deviceDB model.DeviceDatabase, cfg *config.Dendrite, idg *uid.UidGenerator, ) (int, core.Coder)
LegacyRegister process register requests from the legacy v1 API
func LoginGet ¶
func LoginGet( ctx context.Context, req *external.GetLoginRequest, accountDB model.AccountsDatabase, deviceDB model.DeviceDatabase, encryptDB model.EncryptorAPIDatabase, syncDB model.SyncAPIDatabase, cfg config.Dendrite, admin bool, idg *uid.UidGenerator, tokenFilter *filter.Filter, rpcClient *common.RpcClient, ) (int, core.Coder)
func LoginPost ¶
func LoginPost( ctx context.Context, req *external.PostLoginRequest, accountDB model.AccountsDatabase, deviceDB model.DeviceDatabase, encryptDB model.EncryptorAPIDatabase, syncDB model.SyncAPIDatabase, cfg config.Dendrite, admin bool, idg *uid.UidGenerator, tokenFilter *filter.Filter, rpcClient *common.RpcClient, ) (int, core.Coder)
Login implements GET and POST /login
func Logout ¶
func Logout( ctx context.Context, deviceDB model.DeviceDatabase, userID, deviceID string, cache service.Cache, encryptDB model.EncryptorAPIDatabase, syncDB model.SyncAPIDatabase, tokenFilter *filter.Filter, rpcClient *common.RpcClient, ) (int, core.Coder)
Logout handles POST /logout
func LogoutAll ¶
func LogoutAll( ctx context.Context, deviceDB model.DeviceDatabase, userID, deviceID string, cache service.Cache, encryptDB model.EncryptorAPIDatabase, syncDB model.SyncAPIDatabase, tokenFilter *filter.Filter, rpcClient *common.RpcClient, ) (int, core.Coder)
LogoutAll handles POST /logout/all
func LogoutDevice ¶
func LogoutDevice( ctx context.Context, userID, deviceID string, deviceDB model.DeviceDatabase, cache service.Cache, encryptDB model.EncryptorAPIDatabase, syncDB model.SyncAPIDatabase, tokenFilter *filter.Filter, rpcClient *common.RpcClient, )
func OnAddServerNames ¶
func OnAddServerNames(ctx context.Context, cache service.Cache, serverConfDB model.ConfigDatabase, serverNames []string, idg *uid.UidGenerator)
func OnDelServerNames ¶
func OnDelServerNames(ctx context.Context, cache service.Cache, serverConfDB model.ConfigDatabase, serverNames []string)
current has not del
func OnGetServerNameCfg ¶
func OnRoomInfoRequest ¶
func OnRoomInfoRequest( ctx context.Context, userID string, roomIDs []string, rpcCli roomserverapi.RoomserverRPCAPI, cache service.Cache, ) (int, core.Coder)
handle GET /rooms
func OnRoomJoinedRequest ¶
func OnRoomJoinedRequest( ctx context.Context, userID, roomID string, rpcCli roomserverapi.RoomserverRPCAPI, cache service.Cache, complexCache *common.ComplexCache, ) (int, core.Coder)
handle GET /rooms/{roomId}/joined_members
func OnUpdateServerNameCfg ¶
func OnUpdateServerNameCfg( ctx context.Context, req *external.ServerNameCfgRequest, serverConfDB model.ConfigDatabase, cache service.Cache, idg *uid.UidGenerator, cfg config.Dendrite, ) (int, core.Coder)
func PostEvent ¶
func PostEvent( ctx context.Context, req *external.PutRoomStateByTypeWithTxnID, userID, deviceID, IP string, roomID, eventType string, txnID, stateKey *string, cfg config.Dendrite, rpcCli roomserverapi.RoomserverRPCAPI, cache service.Cache, idg *uid.UidGenerator, ) (int, core.Coder)
func PutFilter ¶
func PutFilter( ctx context.Context, filter *external.PostUserFilterRequest, userID string, accountDB model.AccountsDatabase, cache service.Cache, ) (int, core.Coder)
PutFilter implements POST /_matrix/client/r0/user/{userId}/filter
func QueryRoomInfo ¶
func QueryRoomInfo(ctx context.Context, roomID string, rpcCli roomserverapi.RoomserverRPCAPI) ( roomInfo *external.GetRoomInfo, err error)
func RedactEvent ¶
func Register ¶
func Register( ctx context.Context, req *external.PostRegisterRequest, accountDB model.AccountsDatabase, deviceDB model.DeviceDatabase, cfg *config.Dendrite, idg *uid.UidGenerator, ) (int, core.Coder)
Register processes a /register request. http://matrix.org/speculator/spec/HEAD/client_server/unstable.html#post-matrix-client-unstable-register
func RegisterAvailable ¶
RegisterAvailable checks if the username is already taken or invalid.
func RemoveLocalAlias ¶
func RemoveLocalAlias( ctx context.Context, userID string, alias string, rpcCli roomserverapi.RoomserverRPCAPI, ) (int, core.Coder)
RemoveLocalAlias implements DELETE /directory/room/{roomAlias} TODO: Check if the user has the power level to remove an alias
func RequestEmailToken ¶
RequestEmailToken implements:
POST /account/3pid/email/requestToken POST /register/email/requestToken
func SaveAccountData ¶
func SaveAccountData( ctx context.Context, accountDB model.AccountsDatabase, deviceID string, cfg config.Dendrite, userID, roomID, dataType string, content []byte, cache service.Cache, ) (int, core.Coder)
handle /user/{userId}/[rooms/{roomId}/]account_data/{type} handle /user/{userID}/account_data/{type} with roomID empty
func SendMembership ¶
func SendMembership( ctx context.Context, r *external.PostRoomsMembershipRequest, accountDB model.AccountsDatabase, userID string, deviceID, roomID, membership string, cfg config.Dendrite, rpcCli roomserverapi.RoomserverRPCAPI, federation *fed.Federation, cache service.Cache, idg *uid.UidGenerator, complexCache *common.ComplexCache, ) (int, core.Coder)
SendMembership implements PUT /rooms/{roomID}/(join|kick|ban|unban|leave|invite) by building a m.room.member event then sending it to the room server
func SetAvatarURL ¶
func SetAvatarURL( ctx context.Context, r *external.PutAvatarURLRequest, accountDB model.AccountsDatabase, userID string, cfg *config.Dendrite, cache service.Cache, rsRpcCli roomserverapi.RoomserverRPCAPI, idg *uid.UidGenerator, complexCache *common.ComplexCache, ) (int, core.Coder)
SetAvatarURL implements PUT /profile/{userID}/avatar_url
func SetDisplayName ¶
func SetDisplayName( ctx context.Context, r *external.PutDisplayNameRequest, accountDB model.AccountsDatabase, userID string, cfg *config.Dendrite, cache service.Cache, rsRpcCli roomserverapi.RoomserverRPCAPI, idg *uid.UidGenerator, complexCache *common.ComplexCache, ) (int, core.Coder)
SetDisplayName implements PUT /profile/{userID}/displayname
func SetLocalAlias ¶
func SetLocalAlias( ctx context.Context, req *external.PutDirectoryRoomAliasRequest, userID string, alias string, cfg *config.Dendrite, rpcCli roomserverapi.RoomserverRPCAPI, ) (int, core.Coder)
SetLocalAlias implements PUT /directory/room/{roomAlias} TODO: Check if the user has the power level to set an alias
func SetRoomTag ¶
func SetUserInfo ¶
func SetUserInfo( ctx context.Context, r *external.PutUserInfoRequest, accountDB model.AccountsDatabase, userID string, cfg *config.Dendrite, cache service.Cache, rsRpcCli roomserverapi.RoomserverRPCAPI, idg *uid.UidGenerator, complexCache *common.ComplexCache, ) (int, core.Coder)
SetUserInfo implements PUT /user_info/{userID}
func UpdateDeviceByID ¶
func UpdateDeviceByID( ctx context.Context, r *external.PutDeviceRequest, deviceDB model.DeviceDatabase, userID, deviceID string, toDeviceID string, cache service.Cache, ) (int, core.Coder)
UpdateDeviceByID handles PUT on /devices/{deviceID}
func UpdatePresenceByID ¶
func UpdatePresenceListByID ¶
func UsernameIsWithinApplicationServiceNamespace ¶
func UsernameIsWithinApplicationServiceNamespace( cfg *config.Dendrite, username string, appService *config.ApplicationService, ) bool
UsernameIsWithinApplicationServiceNamespace checks to see if a username falls within any of the namespaces of a given Application Service. If no Application Service is given, it will check to see if it matches any Application Service's namespace.
Types ¶
This section is empty.