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