mirror of
https://github.com/element-hq/dendrite.git
synced 2025-03-14 14:15:35 +00:00
54 lines
1.4 KiB
Go
54 lines
1.4 KiB
Go
// Copyright 2024 New Vector Ltd.
|
|
// Copyright 2017 Vector Creations Ltd
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
|
// Please see LICENSE files in the repository root for full details.
|
|
|
|
package api
|
|
|
|
import (
|
|
"regexp"
|
|
)
|
|
|
|
// GetRoomIDForAliasRequest is a request to GetRoomIDForAlias
|
|
type GetRoomIDForAliasRequest struct {
|
|
// Alias we want to lookup
|
|
Alias string `json:"alias"`
|
|
// Should we ask appservices for their aliases as a part of
|
|
// the request?
|
|
IncludeAppservices bool `json:"include_appservices"`
|
|
}
|
|
|
|
// GetRoomIDForAliasResponse is a response to GetRoomIDForAlias
|
|
type GetRoomIDForAliasResponse struct {
|
|
// The room ID the alias refers to
|
|
RoomID string `json:"room_id"`
|
|
}
|
|
|
|
// GetAliasesForRoomIDRequest is a request to GetAliasesForRoomID
|
|
type GetAliasesForRoomIDRequest struct {
|
|
// The room ID we want to find aliases for
|
|
RoomID string `json:"room_id"`
|
|
}
|
|
|
|
// GetAliasesForRoomIDResponse is a response to GetAliasesForRoomID
|
|
type GetAliasesForRoomIDResponse struct {
|
|
// The aliases the alias refers to
|
|
Aliases []string `json:"aliases"`
|
|
}
|
|
|
|
type AliasEvent struct {
|
|
Alias string `json:"alias"`
|
|
AltAliases []string `json:"alt_aliases"`
|
|
}
|
|
|
|
var validateAliasRegex = regexp.MustCompile("^#.*:.+$")
|
|
|
|
func (a AliasEvent) Valid() bool {
|
|
for _, alias := range a.AltAliases {
|
|
if !validateAliasRegex.MatchString(alias) {
|
|
return false
|
|
}
|
|
}
|
|
return a.Alias == "" || validateAliasRegex.MatchString(a.Alias)
|
|
}
|