Update existing Meet rooms by UUID when Events syncs programme data.
Deploy Ladill Meet / deploy (push) Successful in 39s

Service API store now resolves meet_room_uuid before source lookup so programme snapshots apply to pre-linked rooms.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-04 22:12:12 +00:00
co-authored by Cursor
parent d8914b96fe
commit 23026260d9
2 changed files with 73 additions and 0 deletions
+58
View File
@@ -559,6 +559,64 @@ class MeetWebTest extends TestCase
$this->assertSame(1, \App\Models\Room::where('source->entity_id', 'vs-dup')->count());
}
public function test_service_api_upserts_existing_room_by_meet_room_uuid(): void
{
\Illuminate\Support\Facades\Http::fake();
config(['meet.service_api_keys.events' => 'test-events-key']);
$room = \App\Models\Room::create([
'uuid' => 'prelinked-room-uuid',
'owner_ref' => $this->user->public_id,
'organization_id' => $this->organization->id,
'host_user_ref' => $this->user->public_id,
'title' => 'Prelinked town hall',
'type' => 'town_hall',
'status' => 'scheduled',
'scheduled_at' => now()->addDay(),
'timezone' => 'UTC',
'settings' => config('meet.default_settings'),
]);
$programme = [
'title' => 'Summit programme',
'days' => [
[
'label' => 'Day 1',
'items' => [
['time' => '09:00', 'title' => 'Opening keynote', 'host' => 'Alex'],
],
],
],
];
$this->postJson('/api/service/v1/rooms', [
'owner_ref' => $this->user->public_id,
'host_user_ref' => $this->user->public_id,
'meet_room_uuid' => $room->uuid,
'title' => 'Opening keynote',
'type' => 'town_hall',
'scheduled_at' => now()->addDay()->toIso8601String(),
'settings' => [
'programme_snapshot' => $programme,
'linked_programme_items' => [],
],
'source' => [
'app' => 'events',
'entity_type' => 'virtual_session',
'entity_id' => 'vs-prelinked',
'event_id' => '42',
],
], ['Authorization' => 'Bearer test-events-key'])
->assertOk()
->assertJsonPath('room.uuid', $room->uuid)
->assertJsonPath('room.settings.programme_snapshot.title', 'Summit programme');
$this->assertSame(1, \App\Models\Room::count());
$room->refresh();
$this->assertSame('Summit programme', $room->setting('programme_snapshot')['title'] ?? null);
$this->assertSame('vs-prelinked', $room->source['entity_id'] ?? null);
}
public function test_service_api_lookup_by_source(): void
{
\Illuminate\Support\Facades\Http::fake();