mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-17 20:03:10 -06:00
Reduce cyclomatic complexity
This commit is contained in:
parent
13743919d3
commit
47c1ef2b49
|
|
@ -77,18 +77,9 @@ func (d *Database) StoreEvent(
|
||||||
// Note that the below logic depends on the m.room.create event being the
|
// Note that the below logic depends on the m.room.create event being the
|
||||||
// first event that is persisted to the database when creating or joining a
|
// first event that is persisted to the database when creating or joining a
|
||||||
// room.
|
// room.
|
||||||
roomVersion := roomserverVersion.DefaultRoomVersion()
|
var roomVersion gomatrixserverlib.RoomVersion
|
||||||
// Look for m.room.create events.
|
if roomVersion, err = extractRoomVersionFromCreateEvent(event); err != nil {
|
||||||
if event.Type() == gomatrixserverlib.MRoomCreate {
|
return 0, types.StateAtEvent{}, err
|
||||||
var createContent gomatrixserverlib.CreateContent
|
|
||||||
// The m.room.create event contains an optional "room_version" key in
|
|
||||||
// the event content, so we need to unmarshal that first.
|
|
||||||
if err = json.Unmarshal(event.Content(), &createContent); err == nil {
|
|
||||||
if createContent.RoomVersion != nil {
|
|
||||||
// A room version was specified in the event content.
|
|
||||||
roomVersion = *createContent.RoomVersion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if roomNID, err = d.assignRoomNID(ctx, nil, event.RoomID(), roomVersion); err != nil {
|
if roomNID, err = d.assignRoomNID(ctx, nil, event.RoomID(), roomVersion); err != nil {
|
||||||
|
|
@ -143,6 +134,27 @@ func (d *Database) StoreEvent(
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func extractRoomVersionFromCreateEvent(event gomatrixserverlib.Event) (
|
||||||
|
roomVersion gomatrixserverlib.RoomVersion, err error,
|
||||||
|
) {
|
||||||
|
// Look for m.room.create events.
|
||||||
|
if event.Type() != gomatrixserverlib.MRoomCreate {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
roomVersion = roomserverVersion.DefaultRoomVersion()
|
||||||
|
var createContent gomatrixserverlib.CreateContent
|
||||||
|
// The m.room.create event contains an optional "room_version" key in
|
||||||
|
// the event content, so we need to unmarshal that first.
|
||||||
|
if err = json.Unmarshal(event.Content(), &createContent); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// A room version was specified in the event content?
|
||||||
|
if createContent.RoomVersion != nil {
|
||||||
|
roomVersion = *createContent.RoomVersion
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func (d *Database) assignRoomNID(
|
func (d *Database) assignRoomNID(
|
||||||
ctx context.Context, txn *sql.Tx,
|
ctx context.Context, txn *sql.Tx,
|
||||||
roomID string, roomVersion gomatrixserverlib.RoomVersion,
|
roomID string, roomVersion gomatrixserverlib.RoomVersion,
|
||||||
|
|
|
||||||
|
|
@ -99,18 +99,9 @@ func (d *Database) StoreEvent(
|
||||||
// Note that the below logic depends on the m.room.create event being the
|
// Note that the below logic depends on the m.room.create event being the
|
||||||
// first event that is persisted to the database when creating or joining a
|
// first event that is persisted to the database when creating or joining a
|
||||||
// room.
|
// room.
|
||||||
roomVersion := roomserverVersion.DefaultRoomVersion()
|
var roomVersion gomatrixserverlib.RoomVersion
|
||||||
// Look for m.room.create events.
|
if roomVersion, err = extractRoomVersionFromCreateEvent(event); err != nil {
|
||||||
if event.Type() == gomatrixserverlib.MRoomCreate {
|
return err
|
||||||
var createContent gomatrixserverlib.CreateContent
|
|
||||||
// The m.room.create event contains an optional "room_version" key in
|
|
||||||
// the event content, so we need to unmarshal that first.
|
|
||||||
if err = json.Unmarshal(event.Content(), &createContent); err == nil {
|
|
||||||
if createContent.RoomVersion != nil {
|
|
||||||
// A room version was specified in the event content.
|
|
||||||
roomVersion = *createContent.RoomVersion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if roomNID, err = d.assignRoomNID(ctx, txn, event.RoomID(), roomVersion); err != nil {
|
if roomNID, err = d.assignRoomNID(ctx, txn, event.RoomID(), roomVersion); err != nil {
|
||||||
|
|
@ -172,6 +163,27 @@ func (d *Database) StoreEvent(
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func extractRoomVersionFromCreateEvent(event gomatrixserverlib.Event) (
|
||||||
|
roomVersion gomatrixserverlib.RoomVersion, err error,
|
||||||
|
) {
|
||||||
|
// Look for m.room.create events.
|
||||||
|
if event.Type() != gomatrixserverlib.MRoomCreate {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
roomVersion = roomserverVersion.DefaultRoomVersion()
|
||||||
|
var createContent gomatrixserverlib.CreateContent
|
||||||
|
// The m.room.create event contains an optional "room_version" key in
|
||||||
|
// the event content, so we need to unmarshal that first.
|
||||||
|
if err = json.Unmarshal(event.Content(), &createContent); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// A room version was specified in the event content?
|
||||||
|
if createContent.RoomVersion != nil {
|
||||||
|
roomVersion = *createContent.RoomVersion
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func (d *Database) assignRoomNID(
|
func (d *Database) assignRoomNID(
|
||||||
ctx context.Context, txn *sql.Tx,
|
ctx context.Context, txn *sql.Tx,
|
||||||
roomID string, roomVersion gomatrixserverlib.RoomVersion,
|
roomID string, roomVersion gomatrixserverlib.RoomVersion,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue