aboutsummaryrefslogtreecommitdiff
path: root/roomserver/api/alias.go
diff options
context:
space:
mode:
Diffstat (limited to 'roomserver/api/alias.go')
-rw-r--r--roomserver/api/alias.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/roomserver/api/alias.go b/roomserver/api/alias.go
index df69e5b4..be37333b 100644
--- a/roomserver/api/alias.go
+++ b/roomserver/api/alias.go
@@ -14,6 +14,8 @@
package api
+import "regexp"
+
// SetRoomAliasRequest is a request to SetRoomAlias
type SetRoomAliasRequest struct {
// ID of the user setting the alias
@@ -84,3 +86,20 @@ type RemoveRoomAliasResponse struct {
// Did we remove it?
Removed bool `json:"removed"`
}
+
+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)
+}
+