From c55a6340defa31d72c86de99884728972f79501b Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Thu, 6 Jun 2019 17:27:21 +0100 Subject: [PATCH] FEAT #8925 TIME 0:40 get user picture in MP --- rest/index.php | 2 + .../controllers/MaarchParapheurController.php | 48 +++++++++++++++++++ .../controllers/AutoCompleteController.php | 2 +- 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/rest/index.php b/rest/index.php index 4a723e49a0d..21452b1e0e9 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 5954ec4fd69..4bfd0f56692 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 4e1ad461916..37ddbb580fb 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']); -- GitLab