Skip having to re-marshal PowerLevelContentOverride by making use of json.RawMessage

This commit is contained in:
Michael Telatynski 2021-02-11 23:32:28 +00:00
parent ba97baefba
commit bcadf96848

View file

@ -48,7 +48,7 @@ type createRoomRequest struct {
RoomAliasName string `json:"room_alias_name"` RoomAliasName string `json:"room_alias_name"`
GuestCanJoin bool `json:"guest_can_join"` GuestCanJoin bool `json:"guest_can_join"`
RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"` RoomVersion gomatrixserverlib.RoomVersion `json:"room_version"`
PowerLevelContentOverride map[string]interface{} `json:"power_level_content_override"` PowerLevelContentOverride json.RawMessage `json:"power_level_content_override"`
} }
const ( const (
@ -261,16 +261,7 @@ func createRoom(
powerLevelContent := eventutil.InitialPowerLevelsContent(userID) powerLevelContent := eventutil.InitialPowerLevelsContent(userID)
if r.PowerLevelContentOverride != nil { if r.PowerLevelContentOverride != nil {
// Merge powerLevelContentOverride fields by unmarshalling it atop the defaults // Merge powerLevelContentOverride fields by unmarshalling it atop the defaults
var powerLevelContentOverrideBytes []byte err = json.Unmarshal(r.PowerLevelContentOverride, &powerLevelContent)
powerLevelContentOverrideBytes, err = json.Marshal(r.PowerLevelContentOverride)
if err != nil {
return util.JSONResponse{
Code: http.StatusBadRequest,
JSON: jsonerror.BadJSON("malformed power_level_content_override"),
}
}
err = json.Unmarshal(powerLevelContentOverrideBytes, &powerLevelContent)
if err != nil { if err != nil {
return util.JSONResponse{ return util.JSONResponse{
Code: http.StatusBadRequest, Code: http.StatusBadRequest,