-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #28 from CommonGateway/feature/WOO-141/OpenIndexSe…
…rvice Improved code quality by adding OpenIndexService
- Loading branch information
Showing
26 changed files
with
120 additions
and
68 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
<?php | ||
|
||
namespace CommonGateway\OpenIndex\Service; | ||
|
||
use App\Entity\Entity; | ||
use App\Entity\ObjectEntity; | ||
use CommonGateway\CoreBundle\Service\ValidationService; | ||
use Doctrine\ORM\EntityManagerInterface; | ||
use Psr\Log\LoggerInterface; | ||
use Symfony\Component\HttpFoundation\Response; | ||
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; | ||
|
||
/** | ||
* This service handles validation for the OpenIndex subscribers. | ||
* | ||
* @Author Wilco Louwerse <[email protected]>, Robert Zondervan <[email protected]> | ||
* | ||
* @license EUPL <https://github.com/ConductionNL/contactcatalogus/blob/master/LICENSE.md> | ||
* | ||
* @category Service | ||
*/ | ||
class OpenIndexService | ||
{ | ||
const PUBLICATION_REFERENCE = 'https://openwoo.app/schemas/publication.schema.json'; | ||
|
||
|
||
/** | ||
* The constructor sets al needed variables. | ||
* | ||
* @param ValidationService $validationService | ||
* @param EntityManagerInterface $entityManager | ||
* @param LoggerInterface $pluginLogger | ||
*/ | ||
public function __construct( | ||
private readonly ValidationService $validationService, | ||
private readonly EntityManagerInterface $entityManager, | ||
private readonly LoggerInterface $pluginLogger | ||
) { | ||
|
||
}//end __construct() | ||
|
||
|
||
public function validatePublication(ObjectEntity $object, string $method) | ||
{ | ||
// if this subscriber only applies to certain entity types, | ||
if ($object->getEntity() !== null && $object->getEntity()->getReference() === $this::PUBLICATION_REFERENCE | ||
&& $object->getValue('schema') !== null && $object->getValue('data') !== null | ||
) { | ||
$objectArray = $object->toArray(); | ||
|
||
$schemaEntity = $this->entityManager->getRepository(Entity::class)->findOneBy(['reference' => $objectArray['schema']]); | ||
if ($schemaEntity instanceof Entity === false) { | ||
return new Response(json_encode(['message' => 'Could not find schema '.$objectArray['schema']]), 403); | ||
} | ||
|
||
$validationErrors = $this->validationService->validateData($objectArray['data'], $schemaEntity, $method); | ||
|
||
if ($validationErrors !== null) { | ||
$this->pluginLogger->error(message: 'This object could not be safed due to validation errors.', context: ['plugin' => 'common-gateway/woo-bundle', 'errors' => $validationErrors]); | ||
$response = new Response( | ||
content: json_encode( | ||
[ | ||
"message" => 'Validation errors', | ||
'data' => $validationErrors, | ||
] | ||
), | ||
status: 400, | ||
headers: ['content-type' => 'application/json'] | ||
); | ||
$response->send(); | ||
throw new BadRequestHttpException(message: 'Validation Errors'); | ||
} | ||
}//end if | ||
|
||
}//end validatePublication() | ||
|
||
|
||
}//end class |
Oops, something went wrong.