diff --git a/rest/index.php b/rest/index.php index 4a723e49a0d217eca9355408d0d4b8e3e0767bd2..21452b1e0e9eacecc4fa534e1585a7f7411b78e0 100755 --- a/rest/index.php +++ b/rest/index.php @@ -382,6 +382,8 @@ $app->post('/saveNumericPackage', \Sendmail\Controllers\ReceiveMessageExchangeCo $app->post('/saveMessageExchangeReturn', \Sendmail\Controllers\ReceiveMessageExchangeController::class . ':saveMessageExchangeReturn'); $app->post('/saveMessageExchangeReview', \Sendmail\Controllers\MessageExchangeReviewController::class . ':saveMessageExchangeReview'); +$app->get('/maarchParapheur/user/{id}/picture', \ExternalSignatoryBook\controllers\MaarchParapheurController::class . ':getUserPicture'); + $app->get('/xParaphWorkflow', \ExternalSignatoryBook\controllers\XParaphController::class . ':getWorkflow'); $app->post('/xParaphAccount', \ExternalSignatoryBook\controllers\XParaphController::class . ':createXparaphAccount'); $app->delete('/xParaphAccount', \ExternalSignatoryBook\controllers\XParaphController::class . ':deleteXparaphAccount'); diff --git a/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php b/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php index 5954ec4fd698a17a0220349becdd59a0c1c308a2..4bfd0f56692ec8ea1d531ef13aa7882145bf3fab 100755 --- a/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php +++ b/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php @@ -23,7 +23,10 @@ use Note\models\NoteModel; use Priority\models\PriorityModel; use Resource\controllers\SummarySheetController; use Resource\models\ResModel; +use Respect\Validation\Validator; use setasign\Fpdi\Tcpdf\Fpdi; +use Slim\Http\Request; +use Slim\Http\Response; use SrcCore\models\CoreConfigModel; use SrcCore\models\CurlModel; use User\models\UserModel; @@ -420,4 +423,49 @@ class MaarchParapheurController $state['mode'] = $step['mode']; return $state; } + + public static function getUserPicture(Request $request, Response $response, array $aArgs) + { + + $check = Validator::intVal()->validate($aArgs['id']); + if (!$check) { + return $response->withStatus(400)->withJson(['errors' => 'id should be an integer']); + } + + $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'modules/visa/xml/remoteSignatoryBooks.xml']); + + if ($loadedXml->signatoryBookEnabled == 'maarchParapheur') { + foreach ($loadedXml->signatoryBook as $value) { + if ($value->id == "maarchParapheur") { + $url = $value->url; + $userId = $value->userId; + $password = $value->password; + break; + } + } + + $curlResponse = CurlModel::execSimple([ + 'url' => rtrim($url, '/') . '/rest/users/'.$aArgs['id'].'/picture', + 'basicAuth' => ['user' => $userId, 'password' => $password], + 'headers' => ['content-type:application/json'], + 'method' => 'GET' + ]); + + if ($curlResponse['code'] != '200') { + if (!empty($curlResponse['response']['errors'])) { + $errors = $curlResponse['response']['errors']; + } else { + $errors = $curlResponse['errors']; + } + if (empty($errors)) { + $errors = 'An error occured. Please check your configuration file.'; + } + return $response->withStatus(400)->withJson(['errors' => $errors]); + } + } else { + return $response->withStatus(403)->withJson(['errors' => 'maarchParapheur is not enabled']); + } + + return $response->withJson(['picture' => $curlResponse['response']['picture']]); + } } diff --git a/src/core/controllers/AutoCompleteController.php b/src/core/controllers/AutoCompleteController.php index 4e1ad461916f253807732a5a29212aede08c7921..37ddbb580fb1a41ee99a448352bb5991c4e2b84b 100755 --- a/src/core/controllers/AutoCompleteController.php +++ b/src/core/controllers/AutoCompleteController.php @@ -121,7 +121,7 @@ class AutoCompleteController $data = $request->getQueryParams(); $check = Validator::stringType()->notEmpty()->validate($data['search']); if (!$check) { - return $response->withStatus(400)->withJson(['errors' => 'Bad Request']); + return $response->withStatus(400)->withJson(['errors' => 'search is empty']); } $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'modules/visa/xml/remoteSignatoryBooks.xml']);