add error handling for calendar object moved events in GestionService

This commit is contained in:
Tiavina 2025-03-26 19:50:54 +03:00
parent b34c0ff13a
commit 6ac8fc9ecc
2 changed files with 33 additions and 16 deletions

View File

@ -25,6 +25,7 @@ declare(strict_types=1);
namespace OCA\Gestion\Listener;
use Exception;
use OCA\DAV\Events\CalendarObjectMovedEvent;
use OCA\Gestion\Service\GestionService;
use OCP\EventDispatcher\Event;
@ -50,9 +51,17 @@ class CalendarObjectMovedListener implements IEventListener {
return;
}
$calendarData = $event->getObjectData();
$targetCalendarId = $event->getTargetCalendarId();
$vCalendarString = $calendarData["calendardata"];
$this->gestionService->HandleCalendarObjectMoved($vCalendarString,$targetCalendarId);
try{
$targetCalendarId = $event->getTargetCalendarId();
$vCalendarString = $calendarData["calendardata"];
$this->gestionService->HandleCalendarObjectMoved($vCalendarString,$targetCalendarId);
}
catch(Exception $e){
$this->logger->error("Error while handling calendar object moved event: ".$e->getMessage());
}
catch(Exception $e){
$this->logger->error("Error while handling calendar object moved event: ".$e->getMessage());
}
}
}

View File

@ -247,24 +247,32 @@ class GestionService {
}
public function HandleCalendarObjectMoved(string $vCalendarString,$targetCalendarId){
$calendarUuid = $this->GetCalendarUuidFromVCalendarString($vCalendarString);
$isCalendarForLeave = $this->GetIsLeaveFromVCalendarString($vCalendarString);
$isCalendarDevis = $isCalendarForLeave == false;
if($isCalendarDevis){
$devis = $this->gestionBdd->getDevisByCalendarUuid($calendarUuid);
if($devis != null){
$userPrincipalName = $this->gestionBdd->getCalendarPrincipalNameByCalendarId($targetCalendarId);
if($userPrincipalName != null){
$thanatoId = $this->gestionBdd->getThanatoIdByUserUuid($userPrincipalName);
if($thanatoId != null){
$thanatoHasBeenChanged = $thanatoId != $devis["id_thanato"];
if($thanatoHasBeenChanged){
$this->gestionBdd->updateDevisThanato($devis['id'],$thanatoId);
try{
$calendarUuid = $this->GetCalendarUuidFromVCalendarString($vCalendarString);
$isCalendarForLeave = $this->GetIsLeaveFromVCalendarString($vCalendarString);
$isCalendarDevis = $isCalendarForLeave == false;
if($isCalendarDevis){
$devis = $this->gestionBdd->getDevisByCalendarUuid($calendarUuid);
if($devis != null){
$userPrincipalName = $this->gestionBdd->getCalendarPrincipalNameByCalendarId($targetCalendarId);
if($userPrincipalName != null){
$thanatoId = $this->gestionBdd->getThanatoIdByUserUuid($userPrincipalName);
if($thanatoId != null){
$thanatoHasBeenChanged = $thanatoId != $devis["id_thanato"];
if($thanatoHasBeenChanged){
$this->gestionBdd->updateDevisThanato($devis['id'],$thanatoId);
}
}
}
}
}
}
catch(\OC\OCS\Exception $e){
$this->logger->error("Error while handling calendar object moved event: ".$e->getMessage());
}
catch(Exception $e){
$this->logger->error("Error while handling calendar object moved event: ".$e->getMessage());
}
}
public function HandleCreatedCalendarObject(string $vCalendarString){