Loading config/externalEasyIDWebServices.wsdl.dist 0 → 100644 +728 −0 File added.Preview size limit exceeded, changes collapsed. Show changes src/UnicaenLeocarte/Service/Photo/PhotoService.php +37 −32 Original line number Diff line number Diff line Loading @@ -33,18 +33,32 @@ class PhotoService implements SoapClientAwareInterface { $result = $this->soapClient->getDroitUtilisationPhoto($identifiant); // suite à une mise à jour du SGC, le format du résultat se complique... $this->normalizeResult($result); if (! isset($result->return->resources)) { throw new NotFoundException("Aucune ressource trouvée"); } $resource = $this->extractDroitUtilisationPhotoResource($result); if (! isset($result->return->persons)) { throw new NotFoundException("Requête infructueuse"); if ($resource === null) { throw new NotFoundException("Aucun droit photo trouvé"); } $string = $result->return->persons->data->value->stringValue; $string = $resource->data->value->stringValue; return $string === self::UTILISATION_PHOTO_AUTORISEE; } /** * @param object $result * @return object|null */ protected function extractDroitUtilisationPhotoResource($result) { $resources = (array) $result->return->resources; return array_shift($resources); } /** * Retourne la photo pour l'identifiant spécifié. * Loading @@ -56,48 +70,39 @@ class PhotoService implements SoapClientAwareInterface /** @var \stdClass $result */ $result = $this->soapClient->getPhoto($identifiant); // suite à une mise à jour du SGC, le format du résultat se complique... $this->normalizeResult($result); if (! isset($result->return->resources)) { throw new NotFoundException("Aucune ressource trouvée"); } $resource = $this->extractPhotoResource($result); if (! isset($result->return->persons)) { throw new NotFoundException("Requête infructueuse"); if ($resource === null) { throw new NotFoundException("Aucune photo trouvée"); } // c'est le contenu "binaire" de la photo qui est retourné par le WS $imgData = $result->return->persons->data->value->imageValue; $imgData = $resource->data->value->imageValue; return $imgData; } /** * Normalise le format du résultat de la requête. * Autre chemin possible : "->return->resources". * * @param object $result * @return object|null */ protected function normalizeResult(&$result) protected function extractPhotoResource($result) { if (! isset($result->return->resources)) { return; } $resources = (array) $result->return->resources; $data = $result->return->resources; if (is_array($data)) { $found = null; foreach ($data as $item) { if (isset($item->id) && $item->id > 0) { $found = $item; foreach ($resources as $resource) { if (isset($resource->id) && $resource->id > 0) { $found = $resource; break; } } if ($found !== null) { $result->return->persons = $found; } } else { $result->return->persons = $data; } return $found; } /** Loading Loading
config/externalEasyIDWebServices.wsdl.dist 0 → 100644 +728 −0 File added.Preview size limit exceeded, changes collapsed. Show changes
src/UnicaenLeocarte/Service/Photo/PhotoService.php +37 −32 Original line number Diff line number Diff line Loading @@ -33,18 +33,32 @@ class PhotoService implements SoapClientAwareInterface { $result = $this->soapClient->getDroitUtilisationPhoto($identifiant); // suite à une mise à jour du SGC, le format du résultat se complique... $this->normalizeResult($result); if (! isset($result->return->resources)) { throw new NotFoundException("Aucune ressource trouvée"); } $resource = $this->extractDroitUtilisationPhotoResource($result); if (! isset($result->return->persons)) { throw new NotFoundException("Requête infructueuse"); if ($resource === null) { throw new NotFoundException("Aucun droit photo trouvé"); } $string = $result->return->persons->data->value->stringValue; $string = $resource->data->value->stringValue; return $string === self::UTILISATION_PHOTO_AUTORISEE; } /** * @param object $result * @return object|null */ protected function extractDroitUtilisationPhotoResource($result) { $resources = (array) $result->return->resources; return array_shift($resources); } /** * Retourne la photo pour l'identifiant spécifié. * Loading @@ -56,48 +70,39 @@ class PhotoService implements SoapClientAwareInterface /** @var \stdClass $result */ $result = $this->soapClient->getPhoto($identifiant); // suite à une mise à jour du SGC, le format du résultat se complique... $this->normalizeResult($result); if (! isset($result->return->resources)) { throw new NotFoundException("Aucune ressource trouvée"); } $resource = $this->extractPhotoResource($result); if (! isset($result->return->persons)) { throw new NotFoundException("Requête infructueuse"); if ($resource === null) { throw new NotFoundException("Aucune photo trouvée"); } // c'est le contenu "binaire" de la photo qui est retourné par le WS $imgData = $result->return->persons->data->value->imageValue; $imgData = $resource->data->value->imageValue; return $imgData; } /** * Normalise le format du résultat de la requête. * Autre chemin possible : "->return->resources". * * @param object $result * @return object|null */ protected function normalizeResult(&$result) protected function extractPhotoResource($result) { if (! isset($result->return->resources)) { return; } $resources = (array) $result->return->resources; $data = $result->return->resources; if (is_array($data)) { $found = null; foreach ($data as $item) { if (isset($item->id) && $item->id > 0) { $found = $item; foreach ($resources as $resource) { if (isset($resource->id) && $resource->id > 0) { $found = $resource; break; } } if ($found !== null) { $result->return->persons = $found; } } else { $result->return->persons = $data; } return $found; } /** Loading