From fce9c148e3f79ba6e02bf23a1a3e2f0e04e275dc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Gertz?= Date: Fri, 23 Jul 2021 18:57:10 +0200 Subject: [PATCH] Fix token refresh, token cache save and cache path --- Command/CalendarCommand.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Command/CalendarCommand.php b/Command/CalendarCommand.php index 9a0e046..bc1075e 100644 --- a/Command/CalendarCommand.php +++ b/Command/CalendarCommand.php @@ -108,7 +108,7 @@ class CalendarCommand extends Command { //Retrieve cache object //XXX: by default stored in /tmp/symfony-cache/@/W/3/6SEhFfeIW4UMDlAII+Dg //XXX: stored in %kernel.project_dir%/var/cache/airlibre/0/P/IA20X0K4dkMd9-+Ohp9Q - $cache = new FilesystemAdapter($this->config['cache']['namespace'], $this->config['cache']['lifetime'], $this->config['cache']['directory']); + $cache = new FilesystemAdapter($this->config['cache']['namespace'], $this->config['cache']['lifetime'], $this->config['path']['cache']); //Retrieve calendars $cacheCalendars = $cache->getItem('calendars'); @@ -163,10 +163,7 @@ class CalendarCommand extends Command { //With expired token if ($exp = $googleClient->isAccessTokenExpired()) { //Refresh token - if ($googleClient->getRefreshToken()) { - //Retrieve refreshed token - $googleToken = $googleClient->fetchAccessTokenWithRefreshToken($googleClient->getRefreshToken()); - + if (($refreshToken = $googleClient->getRefreshToken()) && ($googleToken = $googleClient->fetchAccessTokenWithRefreshToken($refreshToken)) && empty($googleToken['error'])) { //Add refreshed token $calendars[$clientId]['tokens'][$googleToken['access_token']] = [ 'calendar' => $token['calendar'], @@ -190,6 +187,12 @@ class CalendarCommand extends Command { unset($calendars[$clientId]); } + //Save calendars + $cacheCalendars->set($calendars); + + //Save calendar + $cache->save($cacheCalendars); + //Drop token and report echo 'Token '.$tokenId.' for calendar '.$token['calendar'].' has expired and is not refreshable'."\n"; @@ -450,7 +453,7 @@ class CalendarCommand extends Command { $end->setDateTime($session['stop']->format(\DateTime::ISO8601)); try { - //Insert the event + //Update the event $updatedEvent = $googleCalendar->events->update($token['calendar'], $event->getId(), $event); //Catch exception } catch(\Google\Service\Exception $e) { -- 2.41.0