Skip to content

Commit

Permalink
Merge pull request #28 from CommonGateway/feature/WOO-141/OpenIndexSe…
Browse files Browse the repository at this point in the history
…rvice

Improved code quality by adding OpenIndexService
  • Loading branch information
rjzondervan authored Jun 4, 2024
2 parents 11ab9f8 + efe757e commit cd52702
Show file tree
Hide file tree
Showing 26 changed files with 120 additions and 68 deletions.
2 changes: 1 addition & 1 deletion docs/schema/Attachment.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

An attachment object

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Attachment.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Attachment.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

An externally found index that can be used as a source in federative search queries

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Index.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Index.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Metadata.oc_publiccode.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Adviezen over ontwerpen en andere onderwerpen van adviescolleges of -commissies, exclusief adviezen die betrekking hebben op individuele gevallen.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.oc_publiccode.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.oc_publiccode.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Metadata.ods_agenda_item.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Adviezen over ontwerpen en andere onderwerpen van adviescolleges of -commissies, exclusief adviezen die betrekking hebben op individuele gevallen.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.ods_agenda_item.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.ods_agenda_item.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Metadata.tooi_adviezen.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Adviezen over ontwerpen en andere onderwerpen van adviescolleges of -commissies, exclusief adviezen die betrekking hebben op individuele gevallen.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_adviezen.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_adviezen.svg)

## Properties

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Agenda’s en besluitenlijsten van vergaderingen van diverse bestuurlijke organen.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_agendas_en_besluitenlijsten_bestuurscolleges.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_agendas_en_besluitenlijsten_bestuurscolleges.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Metadata.tooi_bereikbaarheidsgegevens.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Bereikbaarheidsinformatie van bestuursorganen en hun organisatieonderdelen.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_bereikbaarheidsgegevens.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_bereikbaarheidsgegevens.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Metadata.tooi_beschikkingen.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Beschikkingen, uitgezonderd specifieke categorieën.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_beschikkingen.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_beschikkingen.svg)

## Properties

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Ingekomen stukken bij diverse overheidsorganen, uitgezonderd bepaalde vertrouwelijke informatie of individuele gevallen.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_bij_vertegenwoordigende_organen_ingekomen_stukken.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_bij_vertegenwoordigende_organen_ingekomen_stukken.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Metadata.tooi_convenanten.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Convenanten.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_convenanten.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_convenanten.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Metadata.tooi_jaarplannen_en_jaarverslagen.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Jaarplannen en jaarverslagen van bestuursorganen over hun taakuitvoering.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_jaarplannen_en_jaarverslagen.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_jaarplannen_en_jaarverslagen.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Metadata.tooi_klachtoordelen.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Schriftelijke oordelen in klachtprocedures.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_klachtoordelen.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_klachtoordelen.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Metadata.tooi_onderzoeksrapporten.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Onderzoeksrapporten opgesteld op verzoek van bestuursorganen die geen taakuitvoering zijn, gericht op organisatie of beleidsevaluatie.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_onderzoeksrapporten.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_onderzoeksrapporten.svg)

## Properties

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Ontwerpen van wetgeving waarover extern advies is gevraagd, inclusief de adviesaanvraag.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_ontwerpen_van_wet_en_regelgeving_met_adviesaanvraag.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_ontwerpen_van_wet_en_regelgeving_met_adviesaanvraag.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Metadata.tooi_organisatie_en_werkwijze.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Informatie over de organisatie en werkwijze van bestuursorganen.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_organisatie_en_werkwijze.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_organisatie_en_werkwijze.svg)

## Properties

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Overige besluiten van algemene strekking.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_overige_besluiten_van_algemene_strekking.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_overige_besluiten_van_algemene_strekking.svg)

## Properties

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Subsidieverplichtingen die niet via een beschikking lopen, specifiek bij Ministerie van Binnenlandse Zaken.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_subsidieverplichtingen_anders_dan_met_beschikking.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_subsidieverplichtingen_anders_dan_met_beschikking.svg)

## Properties

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Vergaderstukken en verslagen van diverse decentrale overheden en hun commissies.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_vergaderstukken_decentrale_overheden.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_vergaderstukken_decentrale_overheden.svg)

## Properties

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Vergaderstukken en verslagen van de Staten-Generaal, uitgezonderd vertrouwelijke informatie verstrekt aan de Staten-Generaal.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_vergaderstukken_staten_generaal.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_vergaderstukken_staten_generaal.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Metadata.tooi_verzoeken_en_besluiten.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Inhoud van schriftelijke Woo-verzoeken en besluiten daarop, inclusief verstrekte informatie.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_verzoeken_en_besluiten.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_verzoeken_en_besluiten.svg)

## Properties

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Wetten en andere algemeen verbindende voorschriften.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Metadata.tooi_wetten_en_algemeen_verbindende_voorschriften.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Metadata.tooi_wetten_en_algemeen_verbindende_voorschriften.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Organization.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

An organization that provides a publication or index

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Organization.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Organization.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Publication.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The publication object is the core of Open Index, acting as a metadata wrapper for objects and thereby forming the common link between different publications from, for example, WOO and OC.

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Publication.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Publication.svg)

## Properties

Expand Down
2 changes: 1 addition & 1 deletion docs/schema/Theme.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

A thematic clustering of publications in a manner logical for searching, can also be used for topics. Themes exist within a single index and are thus organization specific unless the index is shared by multiple organizations

![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/main/docs/schema/Theme.svg)
![Class Diagram](https://github.com/CommonGateway/OpenIndex/blob/OpenIndexService/docs/schema/Theme.svg)

## Properties

Expand Down
78 changes: 78 additions & 0 deletions src/Service/OpenIndexService.php
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']]);

Check warning on line 51 in src/Service/OpenIndexService.php

View workflow job for this annotation

GitHub Actions / build

Line exceeds 125 characters; contains 131 characters
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
Loading

0 comments on commit cd52702

Please sign in to comment.