/**
  * @param ClientMetadata $metadata
  * @param Constraint $constraint
  */
 public function validate($metadata, Constraint $constraint)
 {
     if (!$metadata->getSectorIdentifierUri()) {
         return;
     }
     $sectorIdentifierUri = $metadata->getSectorIdentifierUri();
     /** @var Organization $organization */
     $organization = $this->orgRepo->findOneBy(compact('sectorIdentifierUri'));
     $success = $this->uriChecker->check($metadata, $sectorIdentifierUri);
     if (!$success) {
         $metadata->setOrganization(null);
     }
     if ($success && $organization instanceof Organization) {
         $metadata->setOrganization($organization);
     }
 }
 public function recheck(ClientMetadata $metadata)
 {
     $url = $metadata->getSectorIdentifierUri();
     try {
         if ($url !== null && !$this->check($metadata, $url)) {
             $metadata->setOrganization(null);
             $metadata->setSectorIdentifierUri(null);
             $this->em->persist($metadata);
             $this->em->flush($metadata);
         }
     } catch (HttpException $e) {
         if ($e->getStatusCode() !== 200) {
             $metadata->setOrganization(null);
         }
     }
     return $metadata;
 }
 private function getOrganization(ClientMetadata $metadata = null)
 {
     if ($metadata === null) {
         return null;
     }
     if ($metadata->getOrganization() === null && $metadata->getSectorIdentifierUri()) {
         $sectorIdentifierUri = $metadata->getSectorIdentifierUri();
         try {
             $verified = $this->getSectorIdentifierUriChecker()->check($metadata, $sectorIdentifierUri);
         } catch (HttpException $e) {
             $verified = false;
         }
         $uri = parse_url($sectorIdentifierUri);
         $domain = $uri['host'];
         $organization = new Organization();
         $organization->setDomain($domain)->setName($domain)->setTrusted(false)->setVerifiedAt($verified ? new \DateTime() : null);
         return $organization;
     }
     return $metadata->getOrganization();
 }