Skip to content
Snippets Groups Projects
Verified Commit 258e61c0 authored by Damien's avatar Damien
Browse files

FEAT #142 Create autocomplete routes

parent e9486d27
No related branches found
No related tags found
No related merge requests found
...@@ -115,6 +115,12 @@ $app->get('/administration', \SrcCore\controllers\CoreController::class . ':getA ...@@ -115,6 +115,12 @@ $app->get('/administration', \SrcCore\controllers\CoreController::class . ':getA
$app->get('/administration/users', \User\controllers\UserController::class . ':getUsersForAdministration'); $app->get('/administration/users', \User\controllers\UserController::class . ':getUsersForAdministration');
$app->get('/administration/users/{id}', \User\controllers\UserController::class . ':getUserForAdministration'); $app->get('/administration/users/{id}', \User\controllers\UserController::class . ':getUserForAdministration');
//AutoComplete
$app->get('/autocomplete/users', \SrcCore\controllers\AutoCompleteController::class . ':getUsers');
$app->get('/autocomplete/users/visa', \SrcCore\controllers\AutoCompleteController::class . ':getUsersForVisa');
$app->get('/autocomplete/entities', \SrcCore\controllers\AutoCompleteController::class . ':getEntities');
$app->get('/autocomplete/statuses', \SrcCore\controllers\AutoCompleteController::class . ':getStatuses');
//Baskets //Baskets
$app->get('/baskets', \Basket\controllers\BasketController::class . ':get'); $app->get('/baskets', \Basket\controllers\BasketController::class . ':get');
$app->post('/baskets', \Basket\controllers\BasketController::class . ':create'); $app->post('/baskets', \Basket\controllers\BasketController::class . ':create');
...@@ -138,7 +144,7 @@ $app->put('/statuses/{identifier}', \Status\controllers\StatusController::class ...@@ -138,7 +144,7 @@ $app->put('/statuses/{identifier}', \Status\controllers\StatusController::class
$app->delete('/statuses/{identifier}', \Status\controllers\StatusController::class . ':delete'); $app->delete('/statuses/{identifier}', \Status\controllers\StatusController::class . ':delete');
$app->get('/administration/statuses/new', \Status\controllers\StatusController::class . ':getNewInformations'); $app->get('/administration/statuses/new', \Status\controllers\StatusController::class . ':getNewInformations');
//groups //Groups
$app->get('/groups', \Group\controllers\GroupController::class . ':get'); $app->get('/groups', \Group\controllers\GroupController::class . ':get');
$app->post('/groups', \Group\controllers\GroupController::class . ':create'); $app->post('/groups', \Group\controllers\GroupController::class . ':create');
$app->get('/groups/{id}', \Group\controllers\GroupController::class . ':getById'); $app->get('/groups/{id}', \Group\controllers\GroupController::class . ':getById');
...@@ -173,7 +179,6 @@ $app->get('/res/{resId}/lock', \Resource\controllers\ResController::class . ':is ...@@ -173,7 +179,6 @@ $app->get('/res/{resId}/lock', \Resource\controllers\ResController::class . ':is
$app->get('/res/{resId}/notes/count', \Resource\controllers\ResController::class . ':getNotesCountForCurrentUserById'); $app->get('/res/{resId}/notes/count', \Resource\controllers\ResController::class . ':getNotesCountForCurrentUserById');
//Users //Users
$app->get('/users/autocompleter', \User\controllers\UserController::class . ':getUsersForAutocompletion');
$app->post('/users', \User\controllers\UserController::class . ':create'); $app->post('/users', \User\controllers\UserController::class . ':create');
$app->get('/users/{id}/details', \User\controllers\UserController::class . ':getDetailledById'); $app->get('/users/{id}/details', \User\controllers\UserController::class . ':getDetailledById');
$app->put('/users/{id}', \User\controllers\UserController::class . ':update'); $app->put('/users/{id}', \User\controllers\UserController::class . ':update');
......
...@@ -20,8 +20,10 @@ use SrcCore\models\DatabaseModel; ...@@ -20,8 +20,10 @@ use SrcCore\models\DatabaseModel;
class StatusModelAbstract class StatusModelAbstract
{ {
public static function get() public static function get(array $aArgs = [])
{ {
ValidatorModel::arrayType($aArgs, ['select']);
$aReturn = DatabaseModel::select([ $aReturn = DatabaseModel::select([
'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
'table' => ['status'], 'table' => ['status'],
...@@ -31,7 +33,7 @@ class StatusModelAbstract ...@@ -31,7 +33,7 @@ class StatusModelAbstract
return $aReturn; return $aReturn;
} }
public static function getById(array $aArgs = []) public static function getById(array $aArgs)
{ {
ValidatorModel::notEmpty($aArgs, ['id']); ValidatorModel::notEmpty($aArgs, ['id']);
ValidatorModel::stringType($aArgs, ['id']); ValidatorModel::stringType($aArgs, ['id']);
...@@ -46,7 +48,7 @@ class StatusModelAbstract ...@@ -46,7 +48,7 @@ class StatusModelAbstract
return $aReturn; return $aReturn;
} }
public static function getByIdentifier(array $aArgs = []) public static function getByIdentifier(array $aArgs)
{ {
ValidatorModel::notEmpty($aArgs, ['identifier']); ValidatorModel::notEmpty($aArgs, ['identifier']);
ValidatorModel::intVal($aArgs, ['identifier']); ValidatorModel::intVal($aArgs, ['identifier']);
......
...@@ -458,23 +458,6 @@ class UserController ...@@ -458,23 +458,6 @@ class UserController
]); ]);
} }
public function getUsersForAutocompletion(Request $request, Response $response)
{
$excludedUsers = ['superadmin'];
$users = UserModel::get([
'select' => ['user_id', 'firstname', 'lastname'],
'where' => ['enabled = ?', 'status != ?', 'user_id not in (?)'],
'data' => ['Y', 'DEL', $excludedUsers]
]);
foreach ($users as $key => $value) {
$users[$key]['formattedUser'] = "{$value['firstname']} {$value['lastname']} ({$value['user_id']})";
}
return $response->withJson($users);
}
public function getUsersForAdministration(Request $request, Response $response) public function getUsersForAdministration(Request $request, Response $response)
{ {
if (!ServiceModel::hasService(['id' => 'admin_users', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) { if (!ServiceModel::hasService(['id' => 'admin_users', 'userId' => $GLOBALS['userId'], 'location' => 'apps', 'type' => 'admin'])) {
......
...@@ -16,7 +16,6 @@ namespace User\models; ...@@ -16,7 +16,6 @@ namespace User\models;
use Docserver\models\DocserverModel; use Docserver\models\DocserverModel;
use Entity\models\EntityModel; use Entity\models\EntityModel;
use History\controllers\HistoryController;
use SrcCore\models\CoreConfigModel; use SrcCore\models\CoreConfigModel;
use SrcCore\models\DatabaseModel; use SrcCore\models\DatabaseModel;
use SrcCore\models\SecurityModel; use SrcCore\models\SecurityModel;
...@@ -26,13 +25,14 @@ class UserModelAbstract ...@@ -26,13 +25,14 @@ class UserModelAbstract
{ {
public static function get(array $aArgs) public static function get(array $aArgs)
{ {
ValidatorModel::arrayType($aArgs, ['select', 'where', 'data']); ValidatorModel::arrayType($aArgs, ['select', 'where', 'data', 'orderBy']);
$aUsers = DatabaseModel::select([ $aUsers = DatabaseModel::select([
'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
'table' => ['users'], 'table' => ['users'],
'where' => empty($aArgs['where']) ? [] : $aArgs['where'], 'where' => $aArgs['where'],
'data' => empty($aArgs['data']) ? [] : $aArgs['data'] 'data' => $aArgs['data'],
'order_by' => $aArgs['orderBy']
]); ]);
return $aUsers; return $aUsers;
......
<?php
/**
* Copyright Maarch since 2008 under licence GPLv3.
* See LICENCE.txt file at the root folder for more details.
* This file is part of Maarch software.
*
*/
/**
* @brief Auto Complete Controller
* @author dev@maarch.org
*/
namespace SrcCore\controllers;
use Core\Models\ServiceModel;
use Slim\Http\Request;
use Slim\Http\Response;
use Entity\models\EntityModel;
use Status\models\StatusModel;
use User\models\UserModel;
class AutoCompleteController
{
public static function getUsers(Request $request, Response $response)
{
$excludedUsers = ['superadmin'];
$users = UserModel::get([
'select' => ['user_id', 'firstname', 'lastname'],
'where' => ['enabled = ?', 'status != ?', 'user_id not in (?)'],
'data' => ['Y', 'DEL', $excludedUsers],
'orderBy' => ['lastname']
]);
$data = [];
foreach ($users as $key => $value) {
$primaryEntity = UserModel::getPrimaryEntityByUserId(['userId' => $value['user_id']]);
$data[] = [
'type' => 'user',
'id' => $value['user_id'],
'idToDisplay' => "{$value['firstname']} {$value['lastname']}",
'otherInfo' => $primaryEntity['entity_label']
];
}
return $response->withJson($data);
}
public static function getUsersForVisa(Request $request, Response $response)
{
$excludedUsers = ['superadmin'];
$users = UserModel::get([
'select' => ['user_id', 'firstname', 'lastname'],
'where' => ['enabled = ?', 'status != ?', 'user_id not in (?)'],
'data' => ['Y', 'DEL', $excludedUsers],
'orderBy' => ['lastname']
]);
$data = [];
foreach ($users as $key => $value) {
if (ServiceModel::hasService(['id' => 'visa_documents', 'userId' => $value['user_id'], 'location' => 'visa', 'type' => 'use'])) {
$primaryEntity = UserModel::getPrimaryEntityByUserId(['userId' => $value['user_id']]);
$data[] = [
'type' => 'user',
'id' => $value['user_id'],
'idToDisplay' => "{$value['firstname']} {$value['lastname']}",
'otherInfo' => $primaryEntity['entity_label']
];
}
}
return $response->withJson($data);
}
public static function getEntities(Request $request, Response $response)
{
$entities = EntityModel::get([
'select' => ['entity_id', 'entity_label', 'short_label'],
'where' => ['enabled = ?'],
'data' => ['Y'],
'orderBy' => ['entity_label']
]);
$data = [];
foreach ($entities as $key => $value) {
$data[] = [
'type' => 'entity',
'id' => $value['entity_id'],
'idToDisplay' => $value['entity_label'],
'otherInfo' => $value['short_label']
];
}
return $response->withJson($data);
}
public static function getStatuses(Request $request, Response $response)
{
$statuses = StatusModel::get([
'select' => ['id', 'label_status']
]);
$data = [];
foreach ($statuses as $key => $value) {
$data[] = [
'type' => 'status',
'id' => $value['id'],
'idToDisplay' => $value['label_status'],
'otherInfo' => $value['label_status']
];
}
return $response->withJson($data);
}
}
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