diff --git a/gestion/lib/Db/Bdd.php b/gestion/lib/Db/Bdd.php index 561a014..135fabe 100644 --- a/gestion/lib/Db/Bdd.php +++ b/gestion/lib/Db/Bdd.php @@ -1884,6 +1884,40 @@ class Bdd { return ""; } + public function getCalendarOrganizerNameByCalendarObjectUuid(string $calendarObjectUuid){ + $calendarObject = $this->getCalendarObjectByUuid($calendarObjectUuid); + if($calendarObject != null){ + $calendar = $this->getCalendarById($calendarObject['calendarid']); + if($calendar != null){ + $principalUri = $calendar["principaluri"]; + $organizerName = str_replace('principals/users/','',$principalUri); + $organizerName = trim($organizerName); + return $organizerName; + } + } + return null; + } + + public function getCalendarObjectByUuid(string $calendarObjectUuid){ + $sql = "SELECT * FROM ".self::CALENDAR_TABLE_PREFIX."calendarobjects WHERE uid = ?;"; + $calendarObjectList = $this->execSQLNoJsonReturn($sql, [$calendarObjectUuid]); + if(!empty($calendarObjectList)){ + $calendarData = $calendarObjectList[0]; + return $calendarData; + } + return null; + } + + public function getCalendarById(int $calendarId){ + $sql = "SELECT * FROM ".self::CALENDAR_TABLE_PREFIX."calendars WHERE id = ?;"; + $calendarList = $this->execSQLNoJsonReturn($sql, [$calendarId]); + if(!empty($calendarList)){ + $calendarData = $calendarList[0]; + return $calendarData; + } + return null; + } + /** * @param $calendarData * @return bool|string diff --git a/gestion/lib/Service/GestionService.php b/gestion/lib/Service/GestionService.php index c7de3e4..d0fabe3 100644 --- a/gestion/lib/Service/GestionService.php +++ b/gestion/lib/Service/GestionService.php @@ -65,6 +65,17 @@ class GestionService { $thanatoId = $thanatoIdFromDb; } } + else{ + //get from calendar object + $calendarUuid = VCalendarHelpers::GetValueFromKeyInVCalendarString("UID", $vCalendarString); + $organizerName = $this->gestionBdd->getCalendarOrganizerNameByCalendarObjectUuid($calendarUuid); + if($organizerName != null){ + $thanatoIdFromDb = $this->gestionBdd->getFirstThanatoIdByName($organizerName); + if($thanatoIdFromDb != null){ + $thanatoId = $thanatoIdFromDb; + } + } + } return $thanatoId; } private function GetAttendeesNameFromVCalendarString(string $vCalendarString): array