Skip to content

Commit caf767c

Browse files
author
tchapi
committed
chore
1 parent 18fc7ad commit caf767c

2 files changed

Lines changed: 353 additions & 10 deletions

File tree

src/Services/BirthdayService.php

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ public function onCardChanged(int $addressBookId, string $cardUri, string $cardD
5656
}
5757

5858
$principalUri = $book->getPrincipalUri();
59-
$calendar = $this->ensureBirthdayCalendarExists($principalUri);
59+
$calendarInstance = $this->ensureBirthdayCalendarExists($principalUri);
6060

61-
$this->updateCalendar($cardUri, $cardData, $book, $calendar->getCalendar());
61+
$this->updateCalendar($cardUri, $cardData, $book, $calendarInstance);
6262
}
6363

6464
public function onCardDeleted(int $addressBookId, string $cardUri): void
@@ -70,12 +70,16 @@ public function onCardDeleted(int $addressBookId, string $cardUri): void
7070
}
7171

7272
$principalUri = $book->getPrincipalUri();
73-
$calendar = $this->ensureBirthdayCalendarExists($principalUri);
73+
$calendarInstance = $this->ensureBirthdayCalendarExists($principalUri);
7474

7575
$objectUri = $book->getUri().'-'.$cardUri.'.ics';
7676

77+
$calendar = $calendarInstance->getCalendar();
78+
// This is the structure that needs to be passed to the backend methods
79+
$calendarId = [$calendar->getId(), $calendarInstance->getId()];
80+
7781
$this->calendarBackend->deleteCalendarObject(
78-
$calendar->getCalendar()->getId(),
82+
$calendarId,
7983
$objectUri
8084
);
8185
}
@@ -318,34 +322,38 @@ public function birthdayEventChanged(string $existingCalendarData, VCalendar $ne
318322
/**
319323
* @throws InvalidDataException
320324
*/
321-
private function updateCalendar(string $cardUri, string $cardData, AddressBook $book, Calendar $calendar): void
325+
private function updateCalendar(string $cardUri, string $cardData, AddressBook $book, CalendarInstance $calendarInstance): void
322326
{
323327
$objectUid = $book->getUri().'-'.$cardUri;
324328
$objectUri = $objectUid.'.ics';
325329
$calendarData = $this->buildDataFromContact($cardData);
326330

331+
$calendar = $calendarInstance->getCalendar();
332+
// This is the structure that needs to be passed to the backend methods
333+
$calendarId = [$calendar->getId(), $calendarInstance->getId()];
334+
327335
$existing = $this->doctrine->getRepository(CalendarObject::class)->findOneBy(['calendar' => $calendar, 'uri' => $objectUri]);
328336

329337
if (null === $calendarData) {
330338
if (null !== $existing) {
331339
$this->calendarBackend->deleteCalendarObject(
332-
$calendar->getId(),
340+
[$calendar->getId(), $calendarInstance->getId()],
333341
$objectUri
334342
);
335343
}
336344
} else {
337345
if (null === $existing) {
338346
$this->calendarBackend->createCalendarObject(
339-
$calendar->getId(),
347+
[$calendar->getId(), $calendarInstance->getId()],
340348
$objectUri,
341-
$calendarData
349+
$calendarData->serialize()
342350
);
343351
} else {
344352
if ($this->birthdayEventChanged($existing->getCalendarData(), $calendarData)) {
345353
$this->calendarBackend->updateCalendarObject(
346-
$calendar->getId(),
354+
[$calendar->getId(), $calendarInstance->getId()],
347355
$objectUri,
348-
$calendarData
356+
$calendarData->serialize()
349357
);
350358
}
351359
}

0 commit comments

Comments
 (0)