From 84c3d6a97831a779a847112ad038aa9daadf25c9 Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Thu, 19 Jul 2018 11:23:14 +0200 Subject: [PATCH] FEAT #8000 Get doctypes + type_id mandatory when creating document --- rest/index.php | 1 + src/app/doctype/controllers/DoctypeController.php | 15 ++++++++++----- src/app/doctype/models/DoctypeModelAbstract.php | 6 ++---- src/app/resource/controllers/ResController.php | 12 ++++++++++++ 4 files changed, 25 insertions(+), 9 deletions(-) diff --git a/rest/index.php b/rest/index.php index 24a377a3e3f..7044ce78332 100755 --- a/rest/index.php +++ b/rest/index.php @@ -126,6 +126,7 @@ $app->post('/doctypes/secondLevel', \Doctype\controllers\SecondLevelController:: $app->get('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':getById'); $app->put('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':update'); $app->delete('/doctypes/secondLevel/{id}', \Doctype\controllers\SecondLevelController::class . ':delete'); +$app->get('/doctypes/types', \Doctype\controllers\DoctypeController::class . ':get'); $app->post('/doctypes/types', \Doctype\controllers\DoctypeController::class . ':create'); $app->get('/doctypes/types/{id}', \Doctype\controllers\DoctypeController::class . ':getById'); $app->put('/doctypes/types/{id}', \Doctype\controllers\DoctypeController::class . ':update'); diff --git a/src/app/doctype/controllers/DoctypeController.php b/src/app/doctype/controllers/DoctypeController.php index 8f2070f61cd..23b7c37203d 100644 --- a/src/app/doctype/controllers/DoctypeController.php +++ b/src/app/doctype/controllers/DoctypeController.php @@ -27,12 +27,17 @@ use Resource\models\ResModel; class DoctypeController { - public function getById(Request $request, Response $response, $aArgs) + public function get(Request $request, Response $response) + { + $doctypes = DoctypeModel::get(); + + return $response->withJson(['doctypes' => $doctypes]); + } + + public function getById(Request $request, Response $response, array $aArgs) { if (!Validator::intVal()->validate($aArgs['id']) || !Validator::notEmpty()->validate($aArgs['id'])) { - return $response - ->withStatus(500) - ->withJson(['errors' => 'wrong format for id']); + return $response->withStatus(500)->withJson(['errors' => 'wrong format for id']); } $obj['doctype'] = DoctypeModel::getById(['id' => $aArgs['id']]); @@ -44,7 +49,7 @@ class DoctypeController $obj['doctype']['enabled'] = false; } } - + $doctypeExt = DoctypeExtModel::getById(['id' => $obj['doctype']['type_id']]); $template = TemplateDoctypeModel::getById(["id" => $obj['doctype']['type_id']]); diff --git a/src/app/doctype/models/DoctypeModelAbstract.php b/src/app/doctype/models/DoctypeModelAbstract.php index f45b3156584..f686dac496f 100644 --- a/src/app/doctype/models/DoctypeModelAbstract.php +++ b/src/app/doctype/models/DoctypeModelAbstract.php @@ -32,7 +32,7 @@ class DoctypeModelAbstract return $firstLevel; } - public static function getById(array $aArgs = []) + public static function getById(array $aArgs) { ValidatorModel::notEmpty($aArgs, ['id']); ValidatorModel::intVal($aArgs, ['id']); @@ -50,9 +50,7 @@ class DoctypeModelAbstract return []; } - $aReturn = $aReturn[0]; - - return $aReturn; + return $aReturn[0]; } public static function create(array $aArgs) diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php index be33b7c0f9a..51b34a439c8 100755 --- a/src/app/resource/controllers/ResController.php +++ b/src/app/resource/controllers/ResController.php @@ -67,6 +67,18 @@ class ResController return $response->withStatus(400)->withJson(['errors' => 'Bad Request']); } + $mandatoryColumns = ['type_id']; + foreach ($data['data'] as $value) { + foreach ($mandatoryColumns as $columnKey => $column) { + if ($column == $value['column']) { + unset($mandatoryColumns[$columnKey]); + } + } + } + if (!empty($mandatoryColumns)) { + return $response->withStatus(400)->withJson(['errors' => 'Data array needs column(s) [' . implode(', ', $mandatoryColumns) . ']']); + } + $resId = StoreController::storeResource($data); if (empty($resId) || !empty($resId['errors'])) { -- GitLab