From 1d4e908341bb431b9352c372031ae83de023e327 Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Wed, 15 Jan 2020 10:54:01 +0100 Subject: [PATCH] FEAT #12764 TIME 0:20 Get default circuit --- rest/index.php | 1 + .../controllers/ListTemplateController.php | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/rest/index.php b/rest/index.php index b9367690b7e..7442d896e07 100755 --- a/rest/index.php +++ b/rest/index.php @@ -349,6 +349,7 @@ $app->get('/resources/{resId}/listInstance', \Entity\controllers\ListInstanceCon $app->get('/resources/{resId}/visaCircuit', \Entity\controllers\ListInstanceController::class . ':getVisaCircuitByResId'); $app->get('/resources/{resId}/opinionCircuit', \Entity\controllers\ListInstanceController::class . ':getOpinionCircuitByResId'); $app->get('/resources/{resId}/availableCircuits', \Entity\controllers\ListTemplateController::class . ':getAvailableCircuitsByResId'); +$app->get('/resources/{resId}/defaultCircuit', \Entity\controllers\ListTemplateController::class . ':getDefaultCircuitByResId'); $app->delete('/resources/{resId}/circuits/{type}', \Entity\controllers\ListInstanceController::class . ':deleteCircuit'); $app->get('/resources/{resId}/linkedResources', \Resource\controllers\LinkController::class . ':getLinkedResources'); $app->post('/resources/{resId}/linkedResources', \Resource\controllers\LinkController::class . ':linkResources'); diff --git a/src/app/entity/controllers/ListTemplateController.php b/src/app/entity/controllers/ListTemplateController.php index 426e7571320..53a1880b6e9 100755 --- a/src/app/entity/controllers/ListTemplateController.php +++ b/src/app/entity/controllers/ListTemplateController.php @@ -623,6 +623,44 @@ class ListTemplateController return $response->withJson(['circuits' => $circuits]); } + public function getDefaultCircuitByResId(Request $request, Response $response, array $args) + { + $queryParams = $request->getQueryParams(); + + if (!Validator::stringType()->notEmpty()->validate($queryParams['circuit'])) { + return $response->withStatus(400)->withJson(['errors' => 'Query params circuit is empty']); + } + + $circuit = $queryParams['circuit'] == 'opinion' ? 'opinionCircuit' : 'visaCircuit'; + $resource = ResModel::getById(['resId' => $args['resId'], 'select' => ['destination']]); + + if (empty($resource['destination'])) { + return $response->withJson(['circuit' => []]); + } + + $entity = EntityModel::getByEntityId(['entityId' => $resource['destination'], 'select' => ['id']]); + + $circuit = ListTemplateModel::get([ + 'select' => ['id', 'type', 'entity_id as "entityId"', 'title', 'description'], + 'where' => ['type = ?', 'entity_id = ?'], + 'data' => [$circuit, $entity['id']] + ]); + + if (empty($circuit[0])) { + return $response->withJson(['circuit' => []]); + } + $circuit = $circuit[0]; + + $listTemplateItems = ListTemplateItemModel::get(['select' => ['*'], 'where' => ['list_template_id = ?'], 'data' => [$circuit['id']]]); + foreach ($listTemplateItems as $key => $value) { + $listTemplateItems[$key]['idToDisplay'] = UserModel::getLabelledUserById(['id' => $value['item_id']]); + $listTemplateItems[$key]['descriptionToDisplay'] = UserModel::getPrimaryEntityById(['id' => $value['item_id'], 'select' => ['entity_label']])['entity_label']; + } + $circuit['items'] = $listTemplateItems; + + return $response->withJson(['circuit' => $circuit]); + } + private static function controlItems(array $args) { ValidatorModel::notEmpty($args, ['items']); -- GitLab