diff --git a/apps/maarch_entreprise/xml/curlCall.xml b/apps/maarch_entreprise/xml/curlCall.xml index 968818275a2ca4f52814202f09e2698c9225097a..f35685b9d4b9c8997aa41ac226016274173a8610 100755 --- a/apps/maarch_entreprise/xml/curlCall.xml +++ b/apps/maarch_entreprise/xml/curlCall.xml @@ -76,25 +76,53 @@ <enabled>false</enabled> <url></url> <method>POST</method> - <file> - <key>encodedFile</key> - </file> - <rawData> - <key>parentId</key> - <value>res_id_master</value> - </rawData> - <rawData> - <key>status</key> - <value>status</value> - </rawData> - <data> - <key>column</key> - <value>aString</value> - </data> - <data> - <key>column2</key> - <value>aString2</value> - </data> + <file>filename</file> + <sendInObject> + <objectName>requete</objectName> + <rawData> + <key>parentQueryId</key> + <value>external_id</value> + </rawData> + <rawData> + <key>externalId</key> + <value>res_id</value> + </rawData> + <rawData> + <key>subject</key> + <value>title</value> + </rawData> + <data> + <key>cityId</key> + <value>73</value> + </data> + <data> + <key>servId</key> + <value>4129</value> + </data> + <data> + <key>sqrtId</key> + <value>12178</value> + </data> + <data> + <key>qrtId</key> + <value>125</value> + </data> + <data> + <key>geo</key> + <value>false</value> + </data> + </sendInObject> + <sendInObject> + <objectName>citoyen</objectName> + <rawData> + <key>id</key> + <value>external_id</value> + </rawData> + <rawData> + <key>externalId</key> + <value>address_id</value> + </rawData> + </sendInObject> </call> <call> <id>sendContactToExternalApplication</id> diff --git a/src/app/action/controllers/ActionMethodController.php b/src/app/action/controllers/ActionMethodController.php index 6179e97f00827fd979f2076a386d6070c79a21e9..424d4ec211c010cafef371f356c605c2a1ab2bec 100644 --- a/src/app/action/controllers/ActionMethodController.php +++ b/src/app/action/controllers/ActionMethodController.php @@ -103,33 +103,34 @@ class ActionMethodController if (CurlModel::isEnabled(['curlCallId' => 'closeResource'])) { $bodyData = []; $config = CurlModel::getConfigByCallId(['curlCallId' => 'closeResource']); - $configResource = CurlModel::getConfigByCallId(['curlCallId' => 'sendResourceToExternalApplication']); - $resource = ResModel::getOnView(['select' => ['doc_' . $configResource['return']['value']], 'where' => ['res_id = ?'], 'data' => [$aArgs['resId']]]); + $resource = ResModel::getById(['select' => ['external_id'], 'resId' => $aArgs['resId']]); + $externalId = json_decode($resource['external_id'], true); - if (!empty($resource[0]['doc_' . $configResource['return']['value']])) { + if (!empty($externalId['localeoId'])) { if (!empty($config['inObject'])) { + foreach ($config['objects'] as $object) { $select = []; $tmpBodyData = []; foreach ($object['rawData'] as $value) { - if ($value == $configResource['return']['value']) { - $select[] = 'doc_' . $configResource['return']['value']; - } elseif ($value != 'note') { + if ($value != 'note' && $value != 'localeoId') { $select[] = $value; } } - $document = ResModel::getOnView(['select' => $select, 'where' => ['res_id = ?'], 'data' => [$aArgs['resId']]]); - if (!empty($document[0])) { - foreach ($object['rawData'] as $key => $value) { - if ($value == 'note') { - $tmpBodyData[$key] = empty($aArgs['note']) ? '' : $aArgs['note']; - } elseif ($value == $configResource['return']['value']) { - $tmpBodyData[$key] = $document[0]['doc_' . $value]; - } else { - $tmpBodyData[$key] = $document[0][$value]; - } + if (!empty($select)) { + $document = ResModel::getOnView(['select' => $select, 'where' => ['res_id = ?'], 'data' => [$aArgs['resId']]]); + } + foreach ($object['rawData'] as $key => $value) { + if ($value == 'note') { + $tmpBodyData[$key] = empty($aArgs['note']) ? '' : $aArgs['note']; + } elseif ($value == 'localeoId') { + $tmpBodyData[$key] = $externalId['localeoId']; + } elseif (!empty($document[0][$value])) { + $tmpBodyData[$key] = $document[0][$value]; + } else { + $tmpBodyData[$key] = ''; } } @@ -137,11 +138,16 @@ class ActionMethodController $tmpBodyData = array_merge($tmpBodyData, $object['data']); } - $bodyData[$object['name']] = $tmpBodyData; + $bodyData[$object['name']] = json_encode($tmpBodyData); } } - CurlModel::exec(['curlCallId' => 'closeResource', 'bodyData' => $bodyData, 'multipleObject' => true, 'noAuth' => true]); + CurlModel::execSimple([ + 'url' => $config['url'], + 'headers' => $config['header'], + 'method' => $config['method'], + 'body' => $bodyData, + ]); } } diff --git a/src/app/resource/controllers/ResourceListController.php b/src/app/resource/controllers/ResourceListController.php index c7faf9edd859fcdc1c76b4a323785d6213fb7109..35f809f1ec021a49574fba2257766439724582ab 100644 --- a/src/app/resource/controllers/ResourceListController.php +++ b/src/app/resource/controllers/ResourceListController.php @@ -658,7 +658,7 @@ class ResourceListController $methodResponses = []; foreach ($resourcesForAction as $resId) { if (!empty($method)) { - $methodResponse = ActionMethodController::$method(['resId' => $resId, 'data' => $body['data']]); + $methodResponse = ActionMethodController::$method(['resId' => $resId, 'data' => $body['data'], 'note' => $body['note']]); if (!empty($methodResponse['errors'])) { if (empty($methodResponses['errors'])) { @@ -674,7 +674,8 @@ class ResourceListController } } } - ActionMethodController::terminateAction(['id' => $aArgs['actionId'], 'resources' => $resourcesForAction, 'basketName' => $basket['basket_name'], 'note' => $body['note'], 'history' => $methodResponse['history']]); + $historic = empty($methodResponse['history']) ? '' : $methodResponse['history']; + ActionMethodController::terminateAction(['id' => $aArgs['actionId'], 'resources' => $resourcesForAction, 'basketName' => $basket['basket_name'], 'note' => $body['note'], 'history' => $historic]); if (!empty($methodResponses)) { return $response->withJson($methodResponses);