diff --git a/OpenApi.yml b/OpenApi.yml index e024f23..f6a06d9 100644 --- a/OpenApi.yml +++ b/OpenApi.yml @@ -218,6 +218,11 @@ paths: required: true schema: type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RoomSettings' responses: '200': description: OK diff --git a/internal/api/rooms.go b/internal/api/rooms.go index 78eefe5..78ae9cc 100644 --- a/internal/api/rooms.go +++ b/internal/api/rooms.go @@ -2,6 +2,8 @@ package api import ( "encoding/json" + "errors" + "io" "net/http" "strings" @@ -84,6 +86,12 @@ func (manager *ApiManagerCtx) roomRecreate(w http.ResponseWriter, r *http.Reques return } + // optional settings payload + if err := json.NewDecoder(r.Body).Decode(&settings); err != nil && !errors.Is(err, io.EOF) { + http.Error(w, err.Error(), 400) + return + } + if err := manager.rooms.Remove(roomId); err != nil { http.Error(w, err.Error(), 500) return