mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-23 14:53:10 -06:00
29 lines
836 B
Go
29 lines
836 B
Go
package helpers
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
|
|
"github.com/matrix-org/gomatrixserverlib"
|
|
)
|
|
|
|
// SanityCheckEvent looks for any obvious problems with the event before
|
|
// we bother to continue processing it any further.
|
|
func SanityCheckEvent(event *gomatrixserverlib.Event) error {
|
|
switch event.Type() {
|
|
case gomatrixserverlib.MRoomCreate:
|
|
var content gomatrixserverlib.CreateContent
|
|
if err := json.Unmarshal(event.Content(), &content); err != nil {
|
|
return fmt.Errorf("Failed to unmarshal content of create event %q", event.EventID())
|
|
}
|
|
|
|
// Check that the room version is supported.
|
|
if content.RoomVersion != nil {
|
|
if _, err := content.RoomVersion.EventFormat(); err != nil {
|
|
return fmt.Errorf("Room version %q is unsupported in create event %q", *content.RoomVersion, event.EventID())
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|