Skip to content
Snippets Groups Projects
Verified Commit 52e83fc8 authored by Florian Azizian's avatar Florian Azizian
Browse files

FEAT #76 Administration doctypes

parent 1a51f1b2
No related branches found
No related tags found
No related merge requests found
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
"Template\\" : "src/app/template/", "Template\\" : "src/app/template/",
"Core\\" : "core/", "Core\\" : "core/",
"Apps\\" : "apps/maarch_entreprise/",
"Attachments\\" : "modules/attachments/", "Attachments\\" : "modules/attachments/",
"Convert\\" : "modules/convert/", "Convert\\" : "modules/convert/",
"Entities\\" : "modules/entities/", "Entities\\" : "modules/entities/",
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* See LICENCE.txt file at the root folder for more details. * See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software. * This file is part of Maarch software.
* @brief FirstLevelControllerTest * @brief DoctypeControllerTest
* @author dev <dev@maarch.org> * @author dev <dev@maarch.org>
* @ingroup core * @ingroup core
*/ */
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use SrcCore\models\DatabaseModel; use SrcCore\models\DatabaseModel;
class FirstLevelControllerTest extends TestCase class DoctypeControllerTest extends TestCase
{ {
private static $firstLevelId = null; private static $firstLevelId = null;
private static $secondLevelId = null; private static $secondLevelId = null;
...@@ -160,6 +160,69 @@ class FirstLevelControllerTest extends TestCase ...@@ -160,6 +160,69 @@ class FirstLevelControllerTest extends TestCase
$this->assertSame('Invalid doctypes_first_level_id', $responseBody->errors[1]); $this->assertSame('Invalid doctypes_first_level_id', $responseBody->errors[1]);
} }
public function testCreateDoctype()
{
$doctypeController = new \Doctype\controllers\DoctypeController();
// CREATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'description' => 'testUDoctype',
'doctypes_first_level_id' => self::$firstLevelId,
'doctypes_second_level_id' => self::$secondLevelId,
'retention_final_disposition' => 'destruction',
'retention_rule' => 'compta_3_03',
'duration_current_use' => '10',
'process_delay' => '18',
'delay1' => '10',
'delay2' => '5',
'process_mode' => 'NORMAL',
'template_id' => '',
'is_generated' => 'N',
'indexes' => [
'custom_t1' => 'N',
'custom_t2' => 'Y',
],
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $doctypeController->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
self::$doctypeId = $responseBody->doctype;
$this->assertInternalType('int', self::$doctypeId);
// CREATE FAIL
$aArgs = [
'description' => '',
'doctypes_first_level_id' => '',
'doctypes_second_level_id' => '',
'retention_final_disposition' => '',
'retention_rule' => 'compta_3_03',
'duration_current_use' => '3',
'process_delay' => '',
'delay1' => '',
'delay2' => '',
'process_mode' => '',
'template_id' => '',
'is_generated' => 'N',
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $doctypeController->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Invalid description', $responseBody->errors[0]);
$this->assertSame('Invalid doctypes_first_level_id', $responseBody->errors[1]);
$this->assertSame('Invalid doctypes_second_level_id value', $responseBody->errors[2]);
$this->assertSame('Invalid process_delay value', $responseBody->errors[3]);
$this->assertSame('Invalid delay1 value', $responseBody->errors[4]);
$this->assertSame('Invalid delay2 value', $responseBody->errors[5]);
}
public function testUpdateFirstLevel() public function testUpdateFirstLevel()
{ {
$firstLevelController = new \Doctype\controllers\FirstLevelController(); $firstLevelController = new \Doctype\controllers\FirstLevelController();
...@@ -244,6 +307,68 @@ class FirstLevelControllerTest extends TestCase ...@@ -244,6 +307,68 @@ class FirstLevelControllerTest extends TestCase
$this->assertSame('Invalid doctypes_first_level_id', $responseBody->errors[3]); $this->assertSame('Invalid doctypes_first_level_id', $responseBody->errors[3]);
} }
public function testUpdateDoctype()
{
$doctypeController = new \Doctype\controllers\DoctypeController();
// UPDATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'PUT']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'description' => 'testUDoctypeUPDATE',
'doctypes_first_level_id' => self::$firstLevelId,
'doctypes_second_level_id' => self::$secondLevelId,
'retention_final_disposition' => 'destruction',
'retention_rule' => 'compta_3_03',
'duration_current_use' => '12',
'process_delay' => '17',
'delay1' => '11',
'delay2' => '6',
'process_mode' => 'SVR',
'template_id' => '',
'is_generated' => 'N',
'indexes' => [
'custom_t1' => 'N',
],
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $doctypeController->update($fullRequest, new \Slim\Http\Response(), ["id" => self::$doctypeId]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(self::$doctypeId, $responseBody->doctype);
// UPDATE FAIL
$aArgs = [
'description' => '',
'doctypes_first_level_id' => '',
'doctypes_second_level_id' => '',
'retention_final_disposition' => '',
'retention_rule' => 'compta_3_03',
'duration_current_use' => '3',
'process_delay' => '',
'delay1' => '',
'delay2' => '',
'process_mode' => '',
'template_id' => '',
'is_generated' => 'N',
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $doctypeController->update($fullRequest, new \Slim\Http\Response(), ["id" => 'gaz']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('type_id is not a numeric', $responseBody->errors[0]);
$this->assertSame('Id gaz does not exists', $responseBody->errors[1]);
$this->assertSame('Invalid description', $responseBody->errors[2]);
$this->assertSame('Invalid doctypes_first_level_id', $responseBody->errors[3]);
$this->assertSame('Invalid doctypes_second_level_id value', $responseBody->errors[4]);
$this->assertSame('Invalid process_delay value', $responseBody->errors[5]);
$this->assertSame('Invalid delay1 value', $responseBody->errors[6]);
$this->assertSame('Invalid delay2 value', $responseBody->errors[7]);
}
public function testRead() public function testRead()
{ {
// READ FIRST LEVEL // READ FIRST LEVEL
...@@ -282,6 +407,186 @@ class FirstLevelControllerTest extends TestCase ...@@ -282,6 +407,186 @@ class FirstLevelControllerTest extends TestCase
$responseBody = json_decode((string)$response->getBody()); $responseBody = json_decode((string)$response->getBody());
$this->assertSame('wrong format for id', $responseBody->errors); $this->assertSame('wrong format for id', $responseBody->errors);
// READ DOCTYPE
$doctypeController = new \Doctype\controllers\DoctypeController();
$response = $doctypeController->getById($request, new \Slim\Http\Response(), ["id" => self::$doctypeId]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(self::$doctypeId, $responseBody->doctype->type_id);
$this->assertSame('testUDoctypeUPDATE', $responseBody->doctype->description);
$this->assertSame(self::$firstLevelId, $responseBody->doctype->doctypes_first_level_id);
$this->assertSame(self::$secondLevelId, $responseBody->doctype->doctypes_second_level_id);
$this->assertSame('destruction', $responseBody->doctype->retention_final_disposition);
$this->assertSame('compta_3_03', $responseBody->doctype->retention_rule);
$this->assertSame(12, $responseBody->doctype->duration_current_use);
$this->assertSame(17, $responseBody->doctypeExt->process_delay);
$this->assertSame(11, $responseBody->doctypeExt->delay1);
$this->assertSame(6, $responseBody->doctypeExt->delay2);
$this->assertSame('SVR', $responseBody->doctypeExt->process_mode);
$this->assertNotNull($responseBody->secondLevel);
$this->assertNotNull($responseBody->processModes);
$this->assertSame(null, $responseBody->modelSelected->template_id);
$this->assertSame('N', $responseBody->modelSelected->is_generated);
$this->assertSame(self::$doctypeId, $responseBody->modelSelected->type_id);
$this->assertNotNull($responseBody->models);
$this->assertNotNull($responseBody->indexes);
$this->assertSame(self::$doctypeId, $responseBody->indexesSelected[0]->type_id);
$this->assertSame('custom_t1', $responseBody->indexesSelected[0]->field_name);
$this->assertSame('N', $responseBody->indexesSelected[0]->mandatory);
// READ DOCTYPE FAIL
$response = $doctypeController->getById($request, new \Slim\Http\Response(), ["id" => 'GAZ']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('wrong format for id', $responseBody->errors);
}
public function testDeleteRedirectDoctype()
{
$doctypeController = new \Doctype\controllers\DoctypeController();
// CREATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [
'description' => 'testUDoctype',
'doctypes_first_level_id' => self::$firstLevelId,
'doctypes_second_level_id' => self::$secondLevelId,
'retention_final_disposition' => 'destruction',
'retention_rule' => 'compta_3_03',
'duration_current_use' => '10',
'process_delay' => '18',
'delay1' => '10',
'delay2' => '5',
'process_mode' => 'NORMAL',
'template_id' => '',
'is_generated' => 'N',
'indexes' => [
'custom_t1' => 'N',
'custom_t2' => 'Y',
],
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $doctypeController->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$doctypeId = $responseBody->doctype;
$resController = new \Resource\controllers\ResController();
// CREATE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'POST']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$fileContent = file_get_contents('modules/convert/Test/Samples/test.txt');
$encodedFile = base64_encode($fileContent);
$data = [
[
'column' => 'subject',
'value' => 'subject value test U',
'type' => 'string',
],
[
'column' => 'type_id',
'value' => $doctypeId,
'type' => 'integer',
],
[
'column' => 'typist',
'value' => 'LLane',
'type' => 'string',
]
];
$aArgs = [
'collId' => 'letterbox_coll',
'table' => 'res_letterbox',
'status' => 'NEW',
'encodedFile' => $encodedFile,
'fileFormat' => 'txt',
'data' => $data
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $resController->create($fullRequest, new \Slim\Http\Response());
$responseBody = json_decode((string)$response->getBody());
$resId = $responseBody->resId;
// CAN NOT DELETE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $doctypeController->delete($fullRequest, new \Slim\Http\Response(), ["id" => $doctypeId]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(false, $responseBody->deleted);
$aArgs = [
"new_type_id" => self::$doctypeId
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $doctypeController->deleteRedirect($fullRequest, new \Slim\Http\Response(), ["id" => $doctypeId]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(true, $responseBody->doctype);
$res = \Resource\models\ResModel::getById(['resId' => $resId]);
$this->assertSame(self::$doctypeId, $res['type_id']);
DatabaseModel::delete([
'table' => 'res_letterbox',
'where' => ['type_id = ?'],
'data' => [self::$doctypeId]
]);
// DELETE REDIRECT FAIL
$aArgs = [
"new_type_id" => 'gaz'
];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $doctypeController->deleteRedirect($fullRequest, new \Slim\Http\Response(), ["id" => $doctypeId]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('wrong format for new_type_id', $responseBody->errors);
}
public function testDeleteDoctype()
{
$doctypeController = new \Doctype\controllers\DoctypeController();
// DELETE
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $doctypeController->delete($fullRequest, new \Slim\Http\Response(), ["id" => self::$doctypeId]);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame(true, $responseBody->deleted);
$this->assertNotNull($responseBody->doctypes);
// DELETE FAIL
$environment = \Slim\Http\Environment::mock(['REQUEST_METHOD' => 'DELETE']);
$request = \Slim\Http\Request::createFromEnvironment($environment);
$aArgs = [];
$fullRequest = \httpRequestCustom::addContentInBody($aArgs, $request);
$response = $doctypeController->delete($fullRequest, new \Slim\Http\Response(), ["id" => 'gaz']);
$responseBody = json_decode((string)$response->getBody());
$this->assertSame('Id is not a numeric', $responseBody->errors);
} }
public function testDeleteSecondLevel() public function testDeleteSecondLevel()
......
...@@ -17,16 +17,17 @@ use Doctype\models\FirstLevelModel; ...@@ -17,16 +17,17 @@ use Doctype\models\FirstLevelModel;
use Doctype\models\SecondLevelModel; use Doctype\models\SecondLevelModel;
use Doctype\models\DoctypeModel; use Doctype\models\DoctypeModel;
use Doctype\models\DoctypeExtModel; use Doctype\models\DoctypeExtModel;
use Doctype\models\DoctypeIndexesModel;
use Doctype\models\TemplateDoctypeModel; use Doctype\models\TemplateDoctypeModel;
use Folder\models\FolderTypeModel; use Folder\models\FolderTypeModel;
use Core\Models\ServiceModel; use Core\Models\ServiceModel;
use Template\models\TemplateModel; use Template\models\TemplateModel;
use Slim\Http\Request; use Slim\Http\Request;
use Slim\Http\Response; use Slim\Http\Response;
use Resource\models\ResModel;
class DoctypeController class DoctypeController
{ {
public function getById(Request $request, Response $response, $aArgs) public function getById(Request $request, Response $response, $aArgs)
{ {
if (!Validator::intVal()->validate($aArgs['id']) || !Validator::notEmpty()->validate($aArgs['id'])) { if (!Validator::intVal()->validate($aArgs['id']) || !Validator::notEmpty()->validate($aArgs['id'])) {
...@@ -45,12 +46,14 @@ class DoctypeController ...@@ -45,12 +46,14 @@ class DoctypeController
} }
} }
$obj['doctypeExt'] = DoctypeExtModel::getById(['id' => $aArgs['id']]); $obj['doctypeExt'] = DoctypeExtModel::getById(['id' => $obj['doctype']['type_id']]);
$obj['secondLevel'] = SecondLevelModel::get(['select' => ['doctypes_second_level_id', 'doctypes_second_level_label']]); $obj['secondLevel'] = SecondLevelModel::get(['select' => ['doctypes_second_level_id', 'doctypes_second_level_label']]);
$obj['processModes'] = DoctypeModel::getProcessMode(); $obj['processModes'] = DoctypeModel::getProcessMode();
$obj['models'] = TemplateModel::getByTarget(['select' => ['template_id', 'template_label', 'template_comment'], 'template_target' => 'doctypes']); $obj['models'] = TemplateModel::getByTarget(['select' => ['template_id', 'template_label', 'template_comment'], 'template_target' => 'doctypes']);
$obj['modelSelected'] = TemplateDoctypeModel::getById(["id" => $aArgs['id']]); $obj['modelSelected'] = TemplateDoctypeModel::getById(["id" => $obj['doctype']['type_id']]);
// get custom $obj['indexes'] = DoctypeIndexesModel::getAllIndexes();
$obj['indexesSelected'] = DoctypeIndexesModel::getById(['id' => $obj['doctype']['type_id']]);
return $response->withJson($obj); return $response->withJson($obj);
} }
...@@ -62,163 +65,268 @@ class DoctypeController ...@@ -62,163 +65,268 @@ class DoctypeController
return $response->withJson($obj); return $response->withJson($obj);
} }
// public function create(Request $request, Response $response) public function create(Request $request, Response $response)
// { {
// if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) { if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) {
// return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
// } }
$data = $request->getParams();
$errors = $this->control($data, 'create');
if (!empty($errors)) {
return $response->withStatus(500)->withJson(['errors' => $errors]);
}
$doctypeId = DoctypeModel::create([
'coll_id' => 'letterbox_coll',
'description' => $data['description'],
'doctypes_first_level_id' => $data['doctypes_first_level_id'],
'doctypes_second_level_id' => $data['doctypes_second_level_id'],
'retention_final_disposition' => $data['retention_final_disposition'],
'retention_rule' => $data['retention_rule'],
'duration_current_use' => $data['duration_current_use']
]);
DoctypeExtModel::create([
"type_id" => $doctypeId,
"process_delay" => $data['process_delay'],
"delay1" => $data['delay1'],
"delay2" => $data['delay2'],
"process_mode" => $data['process_mode'],
]);
TemplateDoctypeModel::create([
"template_id" => $data["template_id"],
"type_id" => $doctypeId,
"is_generated" => $data["is_generated"]
]);
if (!empty($data['indexes'])) {
foreach ($data['indexes'] as $fieldName => $mandatory) {
DoctypeIndexesModel::create([
"type_id" => $doctypeId,
"coll_id" => 'letterbox_coll',
"field_name" => $fieldName,
"mandatory" => $mandatory
]);
}
}
HistoryController::add([
'tableName' => 'doctypes',
'recordId' => $doctypeId,
'eventType' => 'ADD',
'eventId' => 'typesadd',
'info' => _DOCTYPE_ADDED . ' : ' . $data['description']
]);
return $response->withJson(
[
'doctype' => $doctypeId
]
);
}
public function update(Request $request, Response $response, $aArgs)
{
if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) {
return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
}
// $data = $request->getParams(); $data = $request->getParams();
// $data = $this->manageValue($data); $data['type_id'] = $aArgs['id'];
// $errors = $this->control($data, 'create'); $errors = $this->control($data, 'update');
// if (!empty($errors)) { if (!empty($errors)) {
// return $response->withStatus(500)->withJson(['errors' => $errors]); return $response->withStatus(500)->withJson(['errors' => $errors]);
// } }
// $folderTypeId = $data['foldertype_id']; DoctypeModel::update([
// unset($data['foldertype_id']); 'type_id' => $data['type_id'],
// $firstLevelId = FirstLevelModel::create($data); 'coll_id' => 'letterbox_coll',
'description' => $data['description'],
// foreach ($folderTypeId as $value) { 'doctypes_first_level_id' => $data['doctypes_first_level_id'],
// FolderTypeModel::createFolderTypeDocTypeFirstLevel([ 'doctypes_second_level_id' => $data['doctypes_second_level_id'],
// "doctypes_first_level_id" => $firstLevelId, 'retention_final_disposition' => $data['retention_final_disposition'],
// "foldertype_id" => $value 'retention_rule' => $data['retention_rule'],
// ]); 'duration_current_use' => $data['duration_current_use']
// } ]);
// HistoryController::add([ DoctypeExtModel::update([
// 'tableName' => 'doctypes_first_level', "type_id" => $data['type_id'],
// 'recordId' => $firstLevelId, "process_delay" => $data['process_delay'],
// 'eventType' => 'ADD', "delay1" => $data['delay1'],
// 'eventId' => 'structureadd', "delay2" => $data['delay2'],
// 'info' => _DOCTYPE_FIRSTLEVEL_ADDED . ' : ' . $data['doctypes_first_level_label'] "process_mode" => $data['process_mode'],
// ]); ]);
// return $response->withJson( TemplateDoctypeModel::update([
// [ "template_id" => $data["template_id"],
// 'firstLevel' => $firstLevelId "type_id" => $data['type_id'],
// ] "is_generated" => $data["is_generated"]
// ); ]);
// }
DoctypeIndexesModel::delete(["type_id" => $data['type_id']]);
// public function update(Request $request, Response $response, $aArgs)
// { if (!empty($data['indexes'])) {
// if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) { foreach ($data['indexes'] as $fieldName => $mandatory) {
// return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); DoctypeIndexesModel::create([
// } "type_id" => $data['type_id'],
"coll_id" => 'letterbox_coll',
// $obj = $request->getParams(); "field_name" => $fieldName,
// $obj['doctypes_first_level_id'] = $aArgs['id']; "mandatory" => $mandatory
]);
// $obj = $this->manageValue($obj); }
// $errors = $this->control($obj, 'update'); }
// if (!empty($errors)) { HistoryController::add([
// return $response 'tableName' => 'doctypes',
// ->withStatus(500) 'recordId' => $data['type_id'],
// ->withJson(['errors' => $errors]); 'eventType' => 'UP',
// } 'eventId' => 'typesadd',
'info' => _DOCTYPE_EDITED . ' : ' . $data['description']
// $folderTypeId = $obj['foldertype_id']; ]);
// unset($obj['foldertype_id']);
// FirstLevelModel::update($obj); return $response->withJson(
[
// FolderTypeModel::deleteFolderTypeDocTypeFirstLevel(['doctypes_first_level_id' => $obj['doctypes_first_level_id']]); 'doctype' => $data['type_id']
// foreach ($folderTypeId as $value) { ]
// FolderTypeModel::createFolderTypeDocTypeFirstLevel([ );
// "doctypes_first_level_id" => $obj['doctypes_first_level_id'], }
// "foldertype_id" => $value
// ]); public function delete(Request $request, Response $response, $aArgs)
// } {
if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) {
// HistoryController::add([ return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
// 'tableName' => 'doctypes_first_level', }
// 'recordId' => $obj['doctypes_first_level_id'],
// 'eventType' => 'UP', if (!Validator::intVal()->validate($aArgs['id'])) {
// 'eventId' => 'structureup', return $response
// 'info' => _DOCTYPE_FIRSTLEVEL_UPDATED. ' : ' . $obj['doctypes_first_level_label'] ->withStatus(500)
// ]); ->withJson(['errors' => 'Id is not a numeric']);
}
// return $response->withJson(
// [ if (empty(ResModel::get([
// 'firstLevel' => $obj 'select' => ['res_id'],
// ] 'where' => ['type_id = ?'],
// ); 'data' => [$aArgs['id']]]))
// } ) {
DoctypeController::deleteAllDoctypeData(['type_id' => $aArgs['id']]);
// public function delete(Request $request, Response $response, $aArgs) $docTypes = '';
// { $deleted = true;
// if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) { } else {
// return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']); $docTypes = DoctypeModel::get();
// } $deleted = false;
}
// if (!Validator::intVal()->validate($aArgs['id'])) {
// return $response return $response->withJson([
// ->withStatus(500) 'deleted' => $deleted,
// ->withJson(['errors' => 'Id is not a numeric']); 'doctypes' => $docTypes,
// } ]);
}
// FirstLevelModel::update(['doctypes_first_level_id' => $aArgs['id'], 'enabled' => 'N']);
// SecondLevelModel::disabledFirstLevel(['doctypes_first_level_id' => $aArgs['id'], 'enabled' => 'N']); public function deleteRedirect(Request $request, Response $response, $aArgs)
// DoctypeModel::disabledFirstLevel(['doctypes_first_level_id' => $aArgs['id'], 'enabled' => 'N']); {
// FolderTypeModel::deleteFolderTypeDocTypeFirstLevel(['doctypes_first_level_id' => $aArgs['id']]); if (!ServiceModel::hasService(['id' => 'admin_architecture', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) {
// $firstLevel = FirstLevelModel::getById(['id' => $aArgs['id']]); return $response->withStatus(403)->withJson(['errors' => 'Service forbidden']);
}
// HistoryController::add([
// 'tableName' => 'doctypes_first_level', $data = $request->getParams();
// 'recordId' => $aArgs['id'], $data['type_id'] = $aArgs['id'];
// 'eventType' => 'DEL',
// 'eventId' => 'structuredel', if (!Validator::intVal()->validate($data['type_id'])) {
// 'info' => _DOCTYPE_FIRSTLEVEL_DELETED. ' : ' . $firstLevel['doctypes_first_level_label'] return $response
// ]); ->withStatus(500)
->withJson(['errors' => 'Id is not a numeric']);
// return $response->withJson(['firstLevel' => $firstLevel]); }
// }
if (!Validator::intVal()->validate($data['new_type_id']) || !Validator::notEmpty()->validate($data['new_type_id'])) {
// protected function control($aArgs, $mode) return $response
// { ->withStatus(500)
// $errors = []; ->withJson(['errors' => 'wrong format for new_type_id']);
}
// if ($mode == 'update') {
// if (!Validator::intVal()->validate($aArgs['doctypes_first_level_id'])) { if (empty(DoctypeModel::getById(['id' => $data['new_type_id']]))) {
// $errors[] = 'Id is not a numeric'; return $response
// } else { ->withStatus(500)
// $obj = FirstLevelModel::getById(['id' => $aArgs['doctypes_first_level_id']]); ->withJson(['errors' => 'new_type_id does not exists']);
// } }
ResModel::update([
'set' => ['type_id' => $data['new_type_id']],
'where' => ['type_id = ?'],
'data' => [$data['type_id']]
]);
DoctypeController::deleteAllDoctypeData(['type_id' => $data['type_id']]);
return $response->withJson(
[
'doctype' => true
]
);
}
protected function deleteAllDoctypeData(array $aArgs = [])
{
$doctypeInfo = DoctypeModel::getById(['id' => $aArgs['type_id']]);
DoctypeModel::delete(['type_id' => $aArgs['type_id']]);
DoctypeExtModel::delete(["type_id" => $aArgs['type_id']]);
TemplateDoctypeModel::delete(["type_id" => $aArgs['type_id']]);
DoctypeIndexesModel::delete(["type_id" => $aArgs['type_id']]);
HistoryController::add([
'tableName' => 'doctypes',
'recordId' => $doctypeInfo['type_id'],
'eventType' => 'DEL',
'eventId' => 'typesdel',
'info' => _DOCTYPE_DELETED. ' : ' . $doctypeInfo['description']
]);
}
protected function control($aArgs, $mode)
{
$errors = [];
if ($mode == 'update') {
if (!Validator::intVal()->validate($aArgs['type_id'])) {
$errors[] = 'type_id is not a numeric';
} else {
$obj = DoctypeModel::getById(['id' => $aArgs['type_id']]);
}
// if (empty($obj)) { if (empty($obj)) {
// $errors[] = 'Id ' .$aArgs['doctypes_first_level_id']. ' does not exists'; $errors[] = 'Id ' .$aArgs['type_id']. ' does not exists';
// } }
// } }
// if (!Validator::notEmpty()->validate($aArgs['doctypes_first_level_label']) || if (!Validator::notEmpty()->validate($aArgs['description']) ||
// !Validator::length(1, 255)->validate($aArgs['doctypes_first_level_label'])) { !Validator::length(1, 255)->validate($aArgs['description'])) {
// $errors[] = 'Invalid doctypes_first_level_label'; $errors[] = 'Invalid description';
// } }
// if (!Validator::notEmpty()->validate($aArgs['foldertype_id'])) { if (!Validator::notEmpty()->validate($aArgs['doctypes_first_level_id']) ||
// $errors[] = 'Invalid foldertype_id'; !Validator::intVal()->validate($aArgs['doctypes_first_level_id'])) {
// } $errors[] = 'Invalid doctypes_first_level_id';
}
// if (!Validator::notEmpty()->validate($aArgs['enabled']) || ($aArgs['enabled'] != 'Y' && $aArgs['enabled'] != 'N')) {
// $errors[]= 'Invalid enabled value'; if (!Validator::notEmpty()->validate($aArgs['doctypes_second_level_id']) ||
// } !Validator::intVal()->validate($aArgs['doctypes_second_level_id'])) {
$errors[]= 'Invalid doctypes_second_level_id value';
// return $errors; }
// } if (!Validator::notEmpty()->validate($aArgs['process_delay']) ||
!Validator::intVal()->validate($aArgs['process_delay'])) {
// protected function manageValue($request) $errors[]= 'Invalid process_delay value';
// { }
// foreach ($request as $key => $value) { if (!Validator::notEmpty()->validate($aArgs['delay1']) ||
// if (in_array($key, ['enabled'])) { !Validator::intVal()->validate($aArgs['delay1'])) {
// if (empty($value)) { $errors[]= 'Invalid delay1 value';
// $request[$key] = 'N'; }
// } else { if (!Validator::notEmpty()->validate($aArgs['delay2']) ||
// $request[$key] = 'Y'; !Validator::intVal()->validate($aArgs['delay2'])) {
// } $errors[]= 'Invalid delay2 value';
// } }
// }
// return $request; return $errors;
// } }
} }
...@@ -17,7 +17,6 @@ use SrcCore\models\DatabaseModel; ...@@ -17,7 +17,6 @@ use SrcCore\models\DatabaseModel;
class DoctypeExtModelAbstract class DoctypeExtModelAbstract
{ {
public static function getById(array $aArgs = []) public static function getById(array $aArgs = [])
{ {
ValidatorModel::notEmpty($aArgs, ['id']); ValidatorModel::notEmpty($aArgs, ['id']);
...@@ -41,33 +40,45 @@ class DoctypeExtModelAbstract ...@@ -41,33 +40,45 @@ class DoctypeExtModelAbstract
return $aReturn; return $aReturn;
} }
// public static function create(array $aArgs) public static function create(array $aArgs)
// { {
// ValidatorModel::notEmpty($aArgs, ['description', 'doctypes_first_level_id', 'doctypes_second_level_id', 'coll_id']); ValidatorModel::notEmpty($aArgs, ['type_id', 'process_delay', 'delay1', 'delay2', 'process_mode']);
// ValidatorModel::intVal($aArgs, ['doctypes_first_level_id', 'doctypes_second_level_id']); ValidatorModel::intVal($aArgs, ['type_id', 'process_delay', 'delay1', 'delay2']);
// $aArgs['type_id'] = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_type_id_seq']); DatabaseModel::insert([
// DatabaseModel::insert([ 'table' => 'mlb_doctype_ext',
// 'table' => 'doctypes', 'columnsValues' => $aArgs
// 'columnsValues' => $aArgs ]);
// ]);
// return $aArgs; return true;
// } }
// public static function update(array $aArgs) public static function update(array $aArgs)
// { {
// ValidatorModel::notEmpty($aArgs, ['type_id']); ValidatorModel::notEmpty($aArgs, ['type_id', 'process_delay', 'delay1', 'delay2', 'process_mode']);
// ValidatorModel::intVal($aArgs, ['type_id']); ValidatorModel::intVal($aArgs, ['type_id', 'process_delay', 'delay1', 'delay2']);
// DatabaseModel::update([ DatabaseModel::update([
// 'table' => 'mlb_doctype_ext', 'table' => 'mlb_doctype_ext',
// 'set' => $aArgs, 'set' => $aArgs,
// 'where' => ['type_id = ?'], 'where' => ['type_id = ?'],
// 'data' => [$aArgs['type_id']] 'data' => [$aArgs['type_id']]
// ]); ]);
// return true; return true;
// } }
public static function delete(array $aArgs)
{
ValidatorModel::notEmpty($aArgs, ['type_id']);
ValidatorModel::intVal($aArgs, ['type_id']);
DatabaseModel::delete([
'table' => 'mlb_doctype_ext',
'where' => ['type_id = ?'],
'data' => [$aArgs['type_id']]
]);
return true;
}
} }
...@@ -64,7 +64,7 @@ class DoctypeModelAbstract ...@@ -64,7 +64,7 @@ class DoctypeModelAbstract
'columnsValues' => $aArgs 'columnsValues' => $aArgs
]); ]);
return $aArgs; return $aArgs['type_id'];
} }
public static function update(array $aArgs) public static function update(array $aArgs)
...@@ -128,17 +128,28 @@ class DoctypeModelAbstract ...@@ -128,17 +128,28 @@ class DoctypeModelAbstract
$return['process_mode_priority'] = array(); $return['process_mode_priority'] = array();
$processingModes = $xmlfile->process_modes; $processingModes = $xmlfile->process_modes;
if(count($processingModes) > 0) { if (count($processingModes) > 0) {
foreach ($processingModes->process_mode as $process ) { foreach ($processingModes->process_mode as $process) {
$label = (string) $process->label; $label = (string) $process->label;
$return['processing_modes'][$label] = $label; $return['processing_modes'][$label] = $label;
$return['process_mode_priority'][$label] = (string) $process->process_mode_priority; $return['process_mode_priority'][$label] = (string) $process->process_mode_priority;
} }
} }
return $return; return $return;
} }
public static function delete(array $aArgs)
{
ValidatorModel::notEmpty($aArgs, ['type_id']);
ValidatorModel::intVal($aArgs, ['type_id']);
DatabaseModel::delete([
'table' => 'doctypes',
'where' => ['type_id = ?'],
'data' => [$aArgs['type_id']]
]);
return true;
}
} }
...@@ -17,7 +17,6 @@ use SrcCore\models\DatabaseModel; ...@@ -17,7 +17,6 @@ use SrcCore\models\DatabaseModel;
class TemplateDoctypeModelAbstract class TemplateDoctypeModelAbstract
{ {
public static function getById(array $aArgs = []) public static function getById(array $aArgs = [])
{ {
ValidatorModel::notEmpty($aArgs, ['id']); ValidatorModel::notEmpty($aArgs, ['id']);
...@@ -41,33 +40,53 @@ class TemplateDoctypeModelAbstract ...@@ -41,33 +40,53 @@ class TemplateDoctypeModelAbstract
return $aReturn; return $aReturn;
} }
// public static function create(array $aArgs) public static function create(array $aArgs)
// { {
// ValidatorModel::notEmpty($aArgs, ['description', 'doctypes_first_level_id', 'doctypes_second_level_id', 'coll_id']); ValidatorModel::notEmpty($aArgs, ['type_id']);
// ValidatorModel::intVal($aArgs, ['doctypes_first_level_id', 'doctypes_second_level_id']); ValidatorModel::intVal($aArgs, ['template_id', 'type_id']);
// $aArgs['type_id'] = DatabaseModel::getNextSequenceValue(['sequenceId' => 'doctypes_type_id_seq']); if (empty($aArgs['template_id'])) {
// DatabaseModel::insert([ $aArgs['template_id'] = null;
// 'table' => 'doctypes', }
// 'columnsValues' => $aArgs
// ]); DatabaseModel::insert([
'table' => 'templates_doctype_ext',
// return $aArgs; 'columnsValues' => $aArgs
// } ]);
// public static function update(array $aArgs) return $aArgs;
// { }
// ValidatorModel::notEmpty($aArgs, ['type_id']);
// ValidatorModel::intVal($aArgs, ['type_id']); public static function update(array $aArgs)
{
// DatabaseModel::update([ ValidatorModel::notEmpty($aArgs, ['type_id']);
// 'table' => 'mlb_doctype_ext', ValidatorModel::intVal($aArgs, ['template_id', 'type_id']);
// 'set' => $aArgs,
// 'where' => ['type_id = ?'], if (empty($aArgs['template_id'])) {
// 'data' => [$aArgs['type_id']] $aArgs['template_id'] = null;
// ]); }
// return true; DatabaseModel::update([
// } 'table' => 'templates_doctype_ext',
'set' => $aArgs,
'where' => ['type_id = ?'],
'data' => [$aArgs['type_id']]
]);
return true;
}
public static function delete(array $aArgs)
{
ValidatorModel::notEmpty($aArgs, ['type_id']);
ValidatorModel::intVal($aArgs, ['type_id']);
DatabaseModel::delete([
'table' => 'templates_doctype_ext',
'where' => ['type_id = ?'],
'data' => [$aArgs['type_id']]
]);
return true;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment