From e939dde2ebbc2bf7a101c7bec5d569281a435f2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Tue, 23 Sep 2025 16:23:46 +0200 Subject: [PATCH] api people --- ...9_modGoogleApi_GoogleApiTriggers.class.php | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/core/triggers/interface_99_modGoogleApi_GoogleApiTriggers.class.php b/core/triggers/interface_99_modGoogleApi_GoogleApiTriggers.class.php index b17df14..b70f98c 100644 --- a/core/triggers/interface_99_modGoogleApi_GoogleApiTriggers.class.php +++ b/core/triggers/interface_99_modGoogleApi_GoogleApiTriggers.class.php @@ -477,9 +477,19 @@ public function contactCreate($action, $object, User $user, Translate $langs, Co ]); try { $response = $service->people->createContact($person); - $object->array_options['options_googleapiId'] = $response->getResourceName(); + $resourceName = $response->getResourceName(); + $object->array_options['options_googleapiId'] = $resourceName; $object->array_options['options_googleapiEtag'] = $response->getEtag(); $object->update($object->id, $user, 1); + if (!empty($object->photo)) { + $photo = file_get_contents($conf->societe->dir_output . '/contact/' . $object->id . '/photos/' . $object->photo); + $request = new \Google\Service\PeopleService\UpdateContactPhotoRequest(); + $request->setPhotoBytes(base64_encode($photo)); + $person = $service->people->updateContactPhoto( + $resourceName, + $request + ); + } } catch (Exception $e) { dol_syslog('Trigger error' . $this->name . ' for action ' . $action . ' :' . $e->getMessage(), LOG_ERR); $error++; @@ -517,11 +527,6 @@ public function contactCreate($action, $object, User $user, Translate $langs, Co // 'postalAddresses' => [$address], // 'phones' => $phones, // ]; - // if (!$error) { - // // enregistrer l'id google dans dolibarr (extrafield) - // $object->array_options['options_googleapiId'] = $response->getId(); - // $object->update($object->id, $user, 1); - // } return (!$error ? 0 : -1); } @@ -591,7 +596,6 @@ public function contactModify($action, $object, User $user, Translate $langs, Co 'type' => 'workFax', ]; } - // $data = [ // 'givenName' => $object->firstname, // 'surname' => $object->lastname, @@ -630,9 +634,19 @@ public function contactModify($action, $object, User $user, Translate $langs, Co try { $response = $service->people->createContact($person); - $object->array_options['options_googleapiId'] = $response->getResourceName(); + $resourceName = $response->getResourceName(); + $object->array_options['options_googleapiId'] = $resourceName; $object->array_options['options_googleapiEtag'] = $response->getEtag(); $object->update($object->id, $user, 1); + if (!empty($object->photo)) { + $photo = file_get_contents($conf->societe->dir_output . '/contact/' . $object->id . '/photos/' . $object->photo); + $request = new \Google\Service\PeopleService\UpdateContactPhotoRequest(); + $request->setPhotoBytes(base64_encode($photo)); + $person = $service->people->updateContactPhoto( + $resourceName, + $request + ); + } } catch (Exception $e) { dol_syslog('Trigger error' . $this->name . ' for action ' . $action . ' :' . $e->getMessage(), LOG_ERR); $error++; @@ -674,6 +688,15 @@ public function contactModify($action, $object, User $user, Translate $langs, Co // etag is changing when updating $object->array_options['options_googleapiEtag'] = $response->getEtag(); $object->update($object->id, $user, 1); + if (!empty($object->photo)) { + $photo = file_get_contents($conf->societe->dir_output . '/contact/' . $object->id . '/photos/' . $object->photo); + $request = new \Google\Service\PeopleService\UpdateContactPhotoRequest(); + $request->setPhotoBytes(base64_encode($photo)); + $person = $service->people->updateContactPhoto( + $resourceName, + $request + ); + } } catch (Exception $e) { dol_syslog('Trigger error' . $this->name . ' for action ' . $action . ' :' . $e->getMessage(), LOG_ERR); $error++;