Skip to content

Commit

Permalink
feat: zaken_create database implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
MLenterman committed Oct 6, 2023
1 parent 9fe9678 commit a75797c
Show file tree
Hide file tree
Showing 19 changed files with 853 additions and 84 deletions.
4 changes: 4 additions & 0 deletions src/main/configurations/Zaken API - 1.2.0/Configuration.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
<!ENTITY zaakverzoek_read SYSTEM "./configuration_zaken_zaakverzoek_read.xml">
<!ENTITY zaakverzoek_delete SYSTEM "./configuration_zaken_zaakverzoek_delete.xml">
<!ENTITY zaak_list SYSTEM "./configuration_zaken_zaak_list.xml">
<!ENTITY zaak_create_db SYSTEM "./configuration_zaken_zaak_create_db.xml">
<!ENTITY zaak_create_proxy SYSTEM "./configuration_zaken_zaak_create_proxy.xml">
<!ENTITY zaak_create SYSTEM "./configuration_zaken_zaak_create.xml">
<!ENTITY zaak__zoek SYSTEM "./configuration_zaken_zaak__zoek.xml">
<!ENTITY zaak_read SYSTEM "./configuration_zaken_zaak_read.xml">
Expand Down Expand Up @@ -94,6 +96,8 @@
&zaakverzoek_read;
&zaakverzoek_delete;
&zaak_list;
&zaak_create_db;
&zaak_create_proxy;
&zaak_create;
&zaak__zoek;
&zaak_read;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,18 @@

# suppress warning keys
warnings.suppress.defaultvalue=true

zgw.zaken-api.oas-version=API-version: 1.2.0

zaak_create.active=false
zaak_create_db.active=true
zaak_create_proxy.active=false

zgw.zaken-api.db-backend=true
zgw.zaken-api.proxy-backend=false

zgw.catalogi-api.db-backend=true
zgw.catalogi-api.proxy-backend=false

zgw.documenten-api.db-backend=true
zgw.documenten-api.proxy-backend=false

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
>
<Adapter
name="zaak_create"

active="${zaak_create.active}"
>
<Receiver name="zaak_create">
<ApiListener
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
<Module
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../FrankConfig.xsd"
>
<Adapter
name="zaak_create_db"
active="${zaak_create_db.active}"
>
<Receiver name="zaak_create_db">
<ApiListener
name="zaak_create_db"
method="POST"
uriPattern="/zaken/api/v1/zaken"
headerParams="Host,X-Forwarded-Proto"
produces="JSON"
consumes="JSON"
/>
</Receiver>
<Pipeline>
<Exits>
<Exit name="Created" state="SUCCESS" code="201" />
<Exit name="BadRequest" state="ERROR" code="400" />
<Exit name="Unauthorized" state="ERROR" code="401" />
<Exit name="Forbidden" state="ERROR" code="403" />
<Exit name="NotAcceptable" state="ERROR" code="406" />
<Exit name="Conflict" state="ERROR" code="409" />
<Exit name="Gone" state="ERROR" code="410" />
<Exit name="PreconditionFailed" state="ERROR" code="412" />
<Exit name="UnsupportedMediaType" state="ERROR" code="415" />
<Exit name="TooManyRequests" state="ERROR" code="429" />
<Exit name="InternalServerError" state="ERROR" code="500" />
</Exits>

<JsonPipe
name="JsonToXml"
storeResultInSessionKey="orginalMessageXml"
>
<Forward name="success" path="UnwrapOpenZaakEnvelopeToSingle"/>
</JsonPipe>

<XsltPipe
name="UnwrapOpenZaakEnvelopeToSingle"
styleSheetName="Zgw/UnwrapOpenZaakApiEnvelopeToSingle.xslt"
>
<Param name="Type" value="ZgwZaak"/>
<Forward name="success" path="GenerateUuid"/>
<Forward name="error" path="InternalServerError"/>
</XsltPipe>

<UUIDGeneratorPipe
name="GenerateUuid"
preserveInput="true"
storeResultInSessionKey="uuid"
>
<Forward name="success" path="CreateZgwZaak"/>
<Forward name="error" path="InternalServerError"/>
</UUIDGeneratorPipe>

<XsltPipe
name="CreateZgwZaak"
styleSheetName="Zgw/Zaken/Model/ZgwZaak.xslt"
storeResultInSessionKey="ZgwZaak"
>
<Param name="Uuid" sessionKey="uuid"/>
<Forward name="success" path="InsertZgwZaakSender"/>
<Forward name="error" path="InternalServerError"/>
</XsltPipe>

<SenderPipe
name="InsertZgwZaakSender"
>
<FixedQuerySender
name="InsertZgwZaakFixedQuerySender"
query="INSERT INTO ZAAK (ID, DATA) VALUES (?{id}, ?{data})"
queryType="OTHER"
/>
<Param name="id" sessionKey="uuid" />
<Param name="data" />
<Forward name="success" path="SelectZgwZaakSender" />
<Forward name="exception" path="InternalServerError" />
</SenderPipe>

<SenderPipe
name="SelectZgwZaakSender"
>
<FixedQuerySender
name="SelectZgwZaakFixedQuerySender"
query="SELECT PK,ID,DATA FROM ZAAK WHERE ID = ?{id}"
queryType="SELECT"
/>
<Param name="id" sessionKey="uuid"/>
<Forward name="success" path="StoreSubstitutionVars" />
<Forward name="exception" path="InternalServerError" />
</SenderPipe>

<PutInSessionPipe
name="StoreSubstitutionVars"
>
<Param name="scheme" sessionKey="headers" xpathExpression="/headers/header[@name = 'X-Forwarded-Proto']/text()" defaultValue="http" />
<Param name="host" sessionKey="headers" xpathExpression="/headers/header[@name = 'Host']/text()" />
<Param name="ZgwZaak" xpathExpression="/result/rowset/row[@number = '0']/field[@name = 'DATA']/text()" />
<Param name="pk" xpathExpression="/result/rowset/row[@number = '0']/field[@name = 'PK']/text()" />
<Forward name="success" path="EnrichZgwZaak" />
<Forward name="exception" path="InternalServerError" />
</PutInSessionPipe>

<XsltPipe
name="EnrichZgwZaak"
styleSheetName="Zgw/Zaken/Model/ZgwZaak.xslt"
getInputFromSessionKey="ZgwZaak"
>
<Param name="Url" pattern="{scheme}://{host}/zaken/api/v1/zaken/{uuid}" />
<Param name="Identificatie" pattern="openforms2bpel-{pk}"/>
<Forward name="success" path="XmlToJson"/>
<Forward name="error" path="InternalServerError"/>
</XsltPipe>

<Json2XmlValidatorPipe
name="XmlToJson"
schema="Zgw/Zaken/Model/PostZgwZaak.xsd"
outputFormat="JSON"
deepSearch="true"
throwException="true"
>
<Forward name="success" path="Created"/>
<Forward name="error" path="InternalServerError"/>
</Json2XmlValidatorPipe>
</Pipeline>
</Adapter>
</Module>
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
<Module
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../FrankConfig.xsd"
>
<Adapter
name="zaak_create_proxy"
active="${zaak_create_proxy.active}"
>
<Receiver name="zaak_create_proxy">
<ApiListener
name="zaak_create_proxy"
method="POST"
uriPattern="/zaken/api/v1/zaken"
headerParams="Host"
produces="JSON"
consumes="JSON"
/>
</Receiver>
<Pipeline>
<Exits>
<Exit name="Created" state="SUCCESS" code="201" />
<Exit name="BadRequest" state="ERROR" code="400" />
<Exit name="Unauthorized" state="ERROR" code="401" />
<Exit name="Forbidden" state="ERROR" code="403" />
<Exit name="NotAcceptable" state="ERROR" code="406" />
<Exit name="Conflict" state="ERROR" code="409" />
<Exit name="Gone" state="ERROR" code="410" />
<Exit name="PreconditionFailed" state="ERROR" code="412" />
<Exit name="UnsupportedMediaType" state="ERROR" code="415" />
<Exit name="TooManyRequests" state="ERROR" code="429" />
<Exit name="InternalServerError" state="ERROR" code="500" />
</Exits>
<XsltPipe
name="SetZaakUrl"
styleSheetName="Common/xsl/CreateURL.xsl"
getInputFromFixedValue="&lt;dummy/&gt;"
storeResultInSessionKey="UrlParam"
>
<Param name="BaseUrl" value="${zaakbrug.staging.zaken-api.root-url}" />
<Param name="UrlParam" sessionKey="uri" />
<Forward name="success" path="CreateZaakSender"/>
</XsltPipe>

<SenderPipe name="CreateZaakSender"
getInputFromSessionKey="originalMessage">
<HttpSender name="CreateZaakSender"
methodType="POST"
headersParams="Authorization,Accept-Crs,Content-Crs,Accept,Host"
timeout="${zaakbrug.zgw.zaken-api.timeout}"
maxExecuteRetries="5"
contentType="application/json">
<Param name="url" sessionKey="UrlParam" />
<Param name="Accept-Crs" value="EPSG:4326" />
<Param name="Accept" value="application/json" />
<Param name="Content-Crs" value="EPSG:4326" />
<Param name="Host" sessionKey="headers" xpathExpression="/headers/header[@name = 'Host']/text()" />
<Param name="Authorization" value="Bearer @@zaken-api.jwt@@"/>
</HttpSender>

<Forward name="201" path="Created" />
<Forward name="400" path="BadRequest" />
<Forward name="401" path="Unauthorized" />
<Forward name="403" path="Forbidden" />
<Forward name="406" path="NotAcceptable" />
<Forward name="409" path="Conflict" />
<Forward name="410" path="Gone" />
<Forward name="412" path="PreconditionFailed" />
<Forward name="415" path="UnsupportedMediaType" />
<Forward name="429" path="TooManyRequests" />
<Forward name="500" path="InternalServerError" />
</SenderPipe>
</Pipeline>
</Adapter>
</Module>
15 changes: 15 additions & 0 deletions src/main/configurations/bpel/BpelDatabaseChangelog.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,19 @@
</column>
</createTable>
</changeSet>

<changeSet id="Openforms2bpel:1.2" author="MLenterman">
<comment>Add zaak table</comment>
<createTable tableName="ZAAK">
<column name="PK" type="INTEGER" autoIncrement="true">
<constraints primaryKey="true" nullable="false" primaryKeyName="PK_ZAAK"/>
</column>
<column name="ID" type="VARCHAR(36)">
<constraints nullable="false" unique="true" />
</column>
<column name="DATA" type="CLOB">
<constraints nullable="false" />
</column>
</createTable>
</changeSet>
</databaseChangeLog>
Loading

0 comments on commit a75797c

Please sign in to comment.