Do not create room in UpdateRoomMetadata (#2854)

This commit is contained in:
Benjamin Pracht
2024-07-11 17:50:30 -07:00
committed by GitHub
parent a1f8e879cd
commit 6c1d5e8699

View File

@@ -305,47 +305,16 @@ func (s *RoomService) UpdateRoomMetadata(ctx context.Context, req *livekit.Updat
return nil, twirpAuthError(err)
}
room, internal, err := s.roomStore.LoadRoom(ctx, livekit.RoomName(req.Room), false)
room, _, err := s.roomStore.LoadRoom(ctx, livekit.RoomName(req.Room), false)
if err != nil {
return nil, err
}
// no one has joined the room, would not have been created on an RTC node.
// in this case, we'd want to run create again
room, created, err := s.roomAllocator.CreateRoom(ctx, &livekit.CreateRoomRequest{
Name: req.Room,
Metadata: req.Metadata,
})
room, err = s.roomClient.UpdateRoomMetadata(ctx, s.topicFormatter.RoomTopic(ctx, livekit.RoomName(req.Room)), req)
if err != nil {
return nil, err
}
_, err = s.roomClient.UpdateRoomMetadata(ctx, s.topicFormatter.RoomTopic(ctx, livekit.RoomName(req.Room)), req)
if err != nil {
return nil, err
}
err = s.confirmExecution(ctx, func() error {
room, _, err = s.roomStore.LoadRoom(ctx, livekit.RoomName(req.Room), false)
if err != nil {
return err
}
if room.Metadata != req.Metadata {
return ErrOperationFailed
}
return nil
})
if err != nil {
return nil, err
}
if created {
err = s.launchAgents(ctx, room, internal.AgentDispatches)
if err != nil {
return nil, err
}
}
return room, nil
}