Skip to content

Commit

Permalink
feat: objects api object_create implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
MLenterman committed Oct 17, 2023
1 parent d38c4b4 commit 57848bc
Show file tree
Hide file tree
Showing 10 changed files with 203 additions and 93 deletions.
35 changes: 35 additions & 0 deletions src/main/configurations/Objects API/Common/xsl/CreateURL.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="text" />
<xsl:param name="BaseUrl" />
<xsl:param name="UrlParam" />

<xsl:template match="/">
<xsl:variable name="tempUrl">
<xsl:call-template name="Url">
<xsl:with-param name="url" select="$UrlParam"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="fixedUrl">/zaken/api/v1/</xsl:variable>
<xsl:choose>
<xsl:when test="contains($UrlParam,$fixedUrl)">
<xsl:value-of select="concat($BaseUrl,substring-after($UrlParam,$fixedUrl))"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($BaseUrl,$tempUrl)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="Url">
<xsl:param name="url"/>
<xsl:choose>
<xsl:when test="contains(substring-after($url,'/'),'/')">
<xsl:call-template name="Url">
<xsl:with-param name="url" select="substring-after($url,'/')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-after($url,'/')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
7 changes: 7 additions & 0 deletions src/main/configurations/Objects API/Configuration.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<!DOCTYPE Configuration [
<!ENTITY objects_object_create SYSTEM "./configuration_objects_object_create.xml">
]>

<Configuration name="Objects API">
&objects_object_create;
</Configuration>
13 changes: 13 additions & 0 deletions src/main/configurations/Objects API/DeploymentSpecifics.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#
# In this file, all information is stored that are specific for this
# instance of the AdapterFramework.
#
# The values in this file override the values in AppConstants.properties

# suppress warning keys
warnings.suppress.defaultvalue=true

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

objects_object_create.active=true

Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<Module
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../FrankConfig.xsd"
>
<Adapter
name="objects_object_create"
active="${objects_object_create.active}"
>
<Receiver name="objects_object_create">
<ApiListener
name="objects_object_create"
method="POST"
uriPattern="/objects/api/v2/objects"
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"
>
<Forward name="success" path="UnwrapOpenZaakEnvelopeToSingle"/>
</JsonPipe>

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

<SenderPipe
name="BpelAggregatorSender"
>
<IbisLocalSender
name="BpelAggregatorSenderLocalSender"
javaListener="Bpel_Basic_Aggregator"
>
</IbisLocalSender>
<Forward name="success" path="Created" />
<Forward name="exception" path="InternalServerError" />
</SenderPipe>

</Pipeline>
</Adapter>
</Module>
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
<xsl:param name="Bsn" select="''" as="xs:string" />
<xsl:param name="CommercialRegistryNumber" select="''" as="xs:string" />
<xsl:param name="Username" select="''" as="xs:string" />
<xsl:param name="Summary" as="node()"><summary /></xsl:param>
<xsl:param name="Parties" as="node()"><basic:parties /></xsl:param>
<xsl:param name="EmailParameters" as="node()"><emailparameters:emailParameters /></xsl:param>
<xsl:param name="Process" select="''" as="xs:string" />
Expand Down Expand Up @@ -86,79 +87,21 @@
<!-- optional -->
<basic:initiatingSubject>
<basic:person>
<basic:bsn basic:authentic='true'>?XXX?</basic:bsn>
<!-- optional -->
<basic:nonAuthentic xsi:nil='true' />
<xsl:copy-of select="$bsn"/>
</basic:person>
<basic:organization>
<basic:commercialRegistryNumber basic:authentic='true'>?XXX?</basic:commercialRegistryNumber>
<!-- optional -->
<basic:nonAuthentic xsi:nil='true' />
<!-- optional -->
<basic:contactPerson>
<basic:bsn>?XXX?</basic:bsn>
<!-- This element may be left empty if xsi:nil='true' is set. -->
<!-- Max Length: 1, possible value: M, possible value: V, possible value: F,
possible value: O -->
<basic:genderIndication>???</basic:genderIndication>
<!-- Max Length: 20 -->
<basic:initials>???</basic:initials>
<!-- Max Length: 200 -->
<basic:firstNames>???</basic:firstNames>
<!-- Max Length: 10 -->
<basic:lastNamePrefix>???</basic:lastNamePrefix>
<!-- Max Length: 200 -->
<basic:lastName>???</basic:lastName>
<!-- Max Length: 200 -->
<basic:nameOfAddress>???</basic:nameOfAddress>
<!-- This element may be left empty if xsi:nil='true' is set. -->
<basic:dateOfBirth xmlns:egov='http://www.emaxx.org/egov/common'
egov:ignoreDay='?true?' egov:ignoreMonth='?true?'>2008-12-31</basic:dateOfBirth>
<!-- Max Length: 254 -->
<basic:emailAddress>???</basic:emailAddress>
<!-- Max Length: 20 -->
<basic:telephoneNumber>???</basic:telephoneNumber>
<!-- Max Length: 20 -->
<basic:faxNumber>???</basic:faxNumber>
<!-- Max Length: 34 -->
<basic:iban>???</basic:iban>
<!-- Max Length: 11 -->
<basic:bic>???</basic:bic>
<!-- optional -->
<basic:residenceAddress>
<!-- This element may be left empty if xsi:nil='true' is set. -->
<!-- Max Length: 5, Pattern: [0-9]{0,5} -->
<basic:houseNumber>???</basic:houseNumber>
<!-- Max Length: 1 -->
<basic:houseLetter>???</basic:houseLetter>
<!-- Max Length: 4 -->
<basic:houseRemark>???</basic:houseRemark>
<!-- Max Length: 80 -->
<basic:streetname>???</basic:streetname>
<!-- Max Length: 6 -->
<basic:zipCode>???</basic:zipCode>
<!-- Max Length: 80 -->
<basic:city>???</basic:city>
<!-- Max Length: 35 -->
<basic:locationDescription>???</basic:locationDescription>
</basic:residenceAddress>
</basic:contactPerson>
</basic:organization>
</basic:initiatingSubject>
<!-- optional -->
<basic:initiatingActor>
<basic:employee>
<basic:username>?XXX?</basic:username>
</basic:employee>
</basic:initiatingActor>
<!-- optional -->
<xsl:copy-of select="zgw:FromOrderedSource(
$Parties/basic:parties,
$RegisterRequestMessage//basic:parties,
'',
//basic:parties)"/>
<basic:xml>
<!-- This element can be extended by any element from any namespace -->
<xsl:copy-of select="zgw:WrapNullOrSkip('summary', 'skip', zgw:FromOrderedSource(
$Summary,
$RegisterRequestMessage//summary,
'',
//summary))"/>
</basic:xml>
<xsl:copy-of select="zgw:FromOrderedSource(
$EmailParameters/emailparameters:emailParameters,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,52 +15,94 @@
<Exit name="EXCEPTION" state="ERROR" />
</Exits>

<JsonPipe
name="JsonToXml"
>
<Forward name="success" path="UnwrapOpenZaakApiEnvelopeToSingle"/>
<Forward name="exception" path="EXCEPTION"/>
</JsonPipe>

<XsltPipe
name="UnwrapOpenZaakApiEnvelopeToSingle"
styleSheetName="Zgw/UnwrapOpenZaakApiEnvelopeToSingle.xslt"
storeResultInSessionKey="ZgwStatus"
name="CreateInitiateRequestMessage"
styleSheetName="Bpel/Basic/Model/InitiateRequestMessage.xslt"
storeResultInSessionKey="InitiateRequestMessage"
>
<Param name="Type" value="ZgwStatus"/>
<Forward name="success" path="GetZgwZaakByUrlSender"/>
<Forward name="error" path="EXCEPTION"/>
<Param name="User" pattern="{username}" authAlias="${openforms2bpel.bpel.basic-service.authAlias}" />
<Param name="Password" pattern="{password}" authAlias="${openforms2bpel.bpel.basic-service.authAlias}" hidden="true"/>
<Param name="Domain" sessionKey="Domain" />
<Param name="CorrelationId" sessionKey="cid" />
<Param name="Bsn" xpathExpression="/ZgwObject/bsn/text()" />
<!-- <Param name="CommercialRegistryNumber" value="''" /> -->
<!-- <Param name="Username" sessionKey="Username" defaultValue="dummy" /> -->
<Param name="Process" sessionKey="Process" defaultValue="P4_3_VSDB" />
<Forward name="success" path="BpelBasicPostInitiateSender" />
<Forward name="error" path="EXCEPTION" />
</XsltPipe>

<SenderPipe
name="GetZgwZaakByUrlSender"
storeResultInSessionKey="ZgwZaak"
name="BpelBasicPostInitiateSender"
storeResultInSessionKey="InitiateResponseMessage"
>
<IbisLocalSender
name="GetZgwZaakByUrlLocalSender"
javaListener="GetZgwZaakByUrl"
name="BpelBasicPostInitiateLocalSender"
javaListener="Bpel_Basic_PostInitiate"
>
</IbisLocalSender>
<Param name="Url" sessionKey="ZgwStatus" xpathExpression="/ZgwStatus/zaak" />
<Forward name="success" path="GetZgwRolesByZaakUrlSender" />
<Forward name="success" path="CreateEmailParameters" />
<Forward name="exception" path="EXCEPTION" />
</SenderPipe>

<XsltPipe
name="CreateEmailParameters"
getInputFromSessionKey="originalMessage"
styleSheetName="Bpel/Basic/Model/EmailParameters.xslt"
storeResultInSessionKey="EmailParameters"
>
<Param name="EmailAddress" xpathExpression="/ZgwObject/data/uw-gegevens/fieldSetMetDigiD/contactgegevensMD/eMailadresPMD" />
<Param name="LastName" xpathExpression="concat(/ZgwObject/data/uw-gegevens/fieldSetMetDigiD/contactgegevensMD/tussenvoegselSPMD, /ZgwObject/data/uw-gegevens/fieldSetMetDigiD/contactgegevensMD/achternaamPMD)" />
<Forward name="success" path="CreateCaseParameters" />
<Forward name="error" path="EXCEPTION" />
</XsltPipe>

<XsltPipe
name="CreateCaseParameters"
getInputFromFixedValue="&lt;dummy/&gt;"
styleSheetName="Bpel/Basic/Model/CaseParameters.xslt"
storeResultInSessionKey="CaseParameters"
>
<Param name="ReferenceNumber" value="12345" />
<Param name="Description" value="dummy" />
<Param name="Clarification" value="marcel@wearefrank.nl" />
<Param name="Channel" value="WEBFORM" />
<Forward name="success" path="CreateRegisterRequestMessage" />
<Forward name="error" path="EXCEPTION" />
</XsltPipe>

<XsltPipe
name="CreateRegisterRequestMessage"
getInputFromSessionKey="originalMessage"
styleSheetName="Bpel/Basic/Model/RegisterRequestMessage.xslt"
storeResultInSessionKey="RegisterRequestMessage"
>
<Param name="InitiateResponseMessage" sessionKey="InitiateResponseMessage" type="DOMDOC" />
<Param name="User" pattern="{username}" authAlias="${openforms2bpel.bpel.basic-service.authAlias}" />
<Param name="Password" pattern="{password}" authAlias="${openforms2bpel.bpel.basic-service.authAlias}" hidden="true"/>
<Param name="Domain" sessionKey="Domain" />
<Param name="CorrelationId" sessionKey="cid" />
<Param name="Bsn" xpathExpression="/ZgwObject/bsn/text()" />
<Param name="Summary" xpathExpression="/ZgwObject/data" type="NODE" />
<Param name="EmailParameters" sessionKey="EmailParameters" type="DOMDOC" />
<Param name="Process" sessionKey="Process" defaultValue="P4_3_VSDB" />
<Param name="CaseParameters" sessionKey="CaseParameters" type="DOMDOC" />
<Forward name="success" path="BpelBasicPostRegisterSender" />
<Forward name="error" path="EXCEPTION" />
</XsltPipe>

<SenderPipe
name="GetZgwRolesByZaakUrlSender"
name="BpelBasicPostRegisterSender"
>
<IbisLocalSender
name="GetZgwRolesByZaakUrlLocalSender"
javaListener="GetZgwRolesByZaakUrl"
name="BpelBasicPostRegisterLocalSender"
javaListener="Bpel_Basic_PostRegister"
>
</IbisLocalSender>
<Param name="Url" sessionKey="ZgwZaak" xpathExpression="/ZgwZaak/url" />
<Forward name="success" path="UnwrapZgwRollenOpenZaakApiEnvelopeToList" />
<Forward name="success" path="EXIT" />
<Forward name="exception" path="EXCEPTION" />
</SenderPipe>



</Pipeline>
</Adapter>
</Module>
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
name="ValidateInput"
wsdl="Bpel/Basic/Basic.wsdl"
soapBody="initiateRequestMessage,registerRequestMessage"
ignoreUnknownNamespaces="true"
>
<Forward name="success" path="UnwrapInput"/>
<Forward name="failure" path="CreateError"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
<xsl:stylesheet exclude-result-prefixes="xsl xs" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.0" >
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes" />
<xsl:param name="Add" as="node()*" />
<xsl:param name="AddValue" as="node()*" />
<xsl:param name="Type" select="''" as="xs:string" />

<xsl:template match="/">
<xsl:element name="{name(*)}" namespace="{namespace-uri(*)}">
<xsl:copy select="/*"/>
<xsl:copy select="$Add/*"/>
<!-- <xsl:copy select="/*"/> -->
<xsl:for-each select="$AddValue">
<xsl:element name="{$Type}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>

Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/DeploymentSpecifics.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jdbc.migrator.active=true
jdbc.convertFieldnamesToUppercase=true
liquibase.changeLogFile=BpelDatabaseChangelog.xml
# ,Catalogi API - 1.1.1,Documenten API - 1.1.0,Zaken API - 1.2.0
configurations.names=Translate,Catalogi API - 1.1.1,Documenten API - 1.1.0,Zaken API - 1.2.0,bpel
configurations.names=Translate,Catalogi API - 1.1.1,Documenten API - 1.1.0,Zaken API - 1.2.0,bpel,Objects API
classloader.type=DirectoryClassLoader
ibistesttool.custom=Custom

Expand Down

0 comments on commit 57848bc

Please sign in to comment.