This project is used to add request from external source to the User-Request-Manager service.


Go to Swagger and use your api key for api request
For each appplication, you nedd to define:
Code and Name of this entryownerApplication and userRequestApiKey associate to the internal User-Request-ManagerapiKey associate to external applicationcontext which be set when the connector import dataformatters list to define all transformations neededed to adapt data to the internal alloxed requestTypeson service POST http://user-request-connector/api/admin/application or PUThttp://user-request-connector/api/admin/application/{applicationId}
{
"sourceCode": "AGENCE_XXII_POISSY",
"sourceName": "AGENCE_XXII_POISSY",
"ownerApplication": "VILLAGILE-SIGNAL",
"apiKey": "---", <== API KEY local qui sera fournit au client
"userRequestApiKey": "---", <== API KEY de User Request récupéré lors de la création
"contexts": [],
"formatters": [ <== liste des formatters
{
"requestType": "SIGNAL_ILLEGAL_DUMP", <== s'applique au requestType XXX
"rules": [
{
"fromRequest": "{'id':'medium','label':'Moyen'}", <== on définit de façon statique la valeur pour le champ [data][volumeEstimation] de SIGNAL_ILLEGAL_DUMP
"toRequest": "request['data']['volumeEstimatio'n]",
"removeField": false
},
{
"fromRequest": "newContext('CAMERA',request['data']['signalZone'],'Caméra : ' ~ request['data']['signalZone'])", <== on copie l'id de la caméra dans un context
"toRequest": "request['context']",
"removeField": false
},
{
"fromRequest": "request['data']['eventDate']", <== on copie l'id de la caméra dans un context
"toRequest": "request['externalId']",
"removeField": false
},
{
"fromRequest": "'POISSY Agence XXII'", <== on définit la source de l'id de façon statique
"toRequest": "request['externalSource']",
"removeField": false
},
{
"fromRequest": "request['data']['signalZone']", <== on supprime les champs qui ne sont pas supporté par SIGNAL_ILLEGAL_DUMP
"toRequest": null,
"removeField": true
},
{
"fromRequest": "{ 'id': 'others', 'label' : 'Autres' }", <== on définit de façon statique la valeur pour le champ [data][wasteType] de SIGNAL_ILLEGAL_DUMP
"toRequest": "request['data']['wasteType']",
"removeField": false
},
{
"fromRequest": "request['data']['sourceClientId']",
"toRequest": null,
"removeField": true
},
{
"fromRequest": "request['data']['subCategory']",
"toRequest": null,
"removeField": true
},
{
"fromRequest": "request['data']['sourceClientId']",
"toRequest": null,
"removeField": true
},
{
"fromRequest": "request['data']['signalFlow']",
"toRequest": null,
"removeField": true
},
{
"fromRequest": "request['data']['sourceContract']",
"toRequest": null,
"removeField": true
},
{
"fromRequest": "request['data']['eventDate']",
"toRequest": null,
"removeField": true
},
{
"fromRequest": "request['data']['category']",
"toRequest": null,
"removeField": true
},
{
"fromRequest": "getContextByOwnerApplicationAndType(request, 'pce', 'toTransform', true) == null ? doNothing() : ( getContextByOwnerApplicationAndType(request, 'pce', 'toTransform')['id'] == 'contextGoodContext' ? newContext('newContextType','newContextId','newContextLabel') : doNothing() )", <= permet de transférer nue donnée depuis le externalContext d'une source vers le context courant
"toRequest": "request['context']",
"removeField": false
},
{
"fromRequest": "request['data']['requestDate'] == null ? date('Y-m-d') : request['data']['requestDate']", <== si pas de requestDate alors on attribue la date du jour
"toRequest": "request['data']['requestDate']",
"removeField": false
},
]
}
],
"requestTypes": [
"SIGNAL_ILLEGAL_DUMP"
]
}
This configuration define on what the synchronizer must be triggered :
requestTypes compatiblerules to trigger, each test must be a logical test with boolean résult. You can use all Symfony Expression Syntax ans the special function isContextTypeAndIdExist(request['context'],{typeOfContext},{idOFContext})targetApiKey of the remote synchronizer conector{
"requestTypes": [ <= Liste des type de Request applicable.
"SIMPLE_REQUEST_TYPE"
],
"requestTypeSwitchers": [ <= liste des switch de requesType en sortie.
{
"local":"SIMPLE_REQUEST_TYPE",
"remote":"COLL4"
}
],
"rules": [
{
"matchingRule": "isContextTypeAndIdExist(request['context'],'contract','1234567')" <= expression language pour le test. Il doit TOUJOURS retourner une valeur Boolean, sinon le test est ignoré
}
],
"targetApiKey": "----" <= Api Key utilisé pour communiquer avec le User request Connector d'en face.
}