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

FEAT #12331 TIME 0:45 Update resource from basket

parent cbf55463
No related branches found
No related tags found
No related merge requests found
...@@ -338,6 +338,7 @@ $app->get('/res/{resId}/notes/count', \Resource\controllers\ResController::class ...@@ -338,6 +338,7 @@ $app->get('/res/{resId}/notes/count', \Resource\controllers\ResController::class
$app->put('/res/externalInfos', \Resource\controllers\ResController::class . ':updateExternalInfos'); $app->put('/res/externalInfos', \Resource\controllers\ResController::class . ':updateExternalInfos');
$app->get('/categories', \Resource\controllers\ResController::class . ':getCategories'); $app->get('/categories', \Resource\controllers\ResController::class . ':getCategories');
$app->get('/resources/{resId}/users/{userId}/isDestinationChanging', \Action\controllers\PreProcessActionController::class . ':isDestinationChanging'); $app->get('/resources/{resId}/users/{userId}/isDestinationChanging', \Action\controllers\PreProcessActionController::class . ':isDestinationChanging');
$app->put('/resources/{resId}/users/{userId}/groups/{groupId}/baskets/{basketId}', \Resource\controllers\ResController::class . ':updateFromBasket');
//ResourcesList //ResourcesList
$app->get('/resourcesList/users/{userId}/groups/{groupId}/baskets/{basketId}', \Resource\controllers\ResourceListController::class . ':get'); $app->get('/resourcesList/users/{userId}/groups/{groupId}/baskets/{basketId}', \Resource\controllers\ResourceListController::class . ':get');
......
...@@ -16,6 +16,7 @@ namespace Resource\controllers; ...@@ -16,6 +16,7 @@ namespace Resource\controllers;
use AcknowledgementReceipt\models\AcknowledgementReceiptModel; use AcknowledgementReceipt\models\AcknowledgementReceiptModel;
use Basket\models\BasketModel; use Basket\models\BasketModel;
use Basket\models\GroupBasketModel;
use Basket\models\RedirectBasketModel; use Basket\models\RedirectBasketModel;
use Convert\controllers\ConvertPdfController; use Convert\controllers\ConvertPdfController;
use Convert\controllers\ConvertThumbnailController; use Convert\controllers\ConvertThumbnailController;
...@@ -32,6 +33,7 @@ use Folder\models\FolderModel; ...@@ -32,6 +33,7 @@ use Folder\models\FolderModel;
use Folder\models\ResourceFolderModel; use Folder\models\ResourceFolderModel;
use Group\controllers\GroupController; use Group\controllers\GroupController;
use Group\controllers\PrivilegeController; use Group\controllers\PrivilegeController;
use Group\models\GroupModel;
use Group\models\PrivilegeModel; use Group\models\PrivilegeModel;
use History\controllers\HistoryController; use History\controllers\HistoryController;
use IndexingModel\models\IndexingModelFieldModel; use IndexingModel\models\IndexingModelFieldModel;
...@@ -250,6 +252,81 @@ class ResController ...@@ -250,6 +252,81 @@ class ResController
return $response->withStatus(204); return $response->withStatus(204);
} }
public function updateFromBasket(Request $request, Response $response, array $args)
{
$errors = ResourceListController::listControl(['groupId' => $args['groupId'], 'userId' => $args['userId'], 'basketId' => $args['basketId'], 'currentUserId' => $GLOBALS['id']]);
if (!empty($errors['errors'])) {
return $response->withStatus($errors['code'])->withJson(['errors' => $errors['errors']]);
}
$user = UserModel::getById(['id' => $args['userId'], 'select' => ['user_id']]);
$basket = BasketModel::getById(['id' => $args['basketId'], 'select' => ['basket_id', 'basket_clause']]);
$group = GroupModel::getById(['id' => $args['groupId'], 'select' => ['group_id']]);
$groupBasket = GroupBasketModel::get(['select' => ['list_event_data', 'list_event'], 'where' => ['basket_id = ?', 'group_id = ?'], 'data' => [$basket['basket_id'], $group['group_id']]]);
$listEventData = json_decode($groupBasket[0]['list_event_data'], true);
if ($groupBasket[0]['list_event'] != 'processDocument' || !$listEventData['canUpdate']) {
return $response->withStatus(400)->withJson(['errors' => 'Basket can not update resources']);
}
$whereClause = PreparedClauseController::getPreparedClause(['clause' => $basket['basket_clause'], 'login' => $user['user_id']]);
$resource = ResModel::getOnView([
'select' => [1],
'where' => [$whereClause, 'res_view_letterbox.res_id = ?'],
'data' => [$args['resId']]
]);
if (empty($resource)) {
return $response->withStatus(400)->withJson(['errors' => 'Resource does not belong to this basket']);
}
$body = $request->getParsedBody();
$control = ResController::controlUpdateResource(['body' => $body, 'resId' => $args['resId']]);
if (!empty($control['errors'])) {
return $response->withStatus(400)->withJson(['errors' => $control['errors']]);
}
$body['resId'] = $args['resId'];
$resId = StoreController::storeResource($body);
if (empty($resId) || !empty($resId['errors'])) {
return $response->withStatus(500)->withJson(['errors' => '[ResController update] ' . $resId['errors']]);
}
ResController::updateAdjacentData(['body' => $body, 'resId' => $args['resId']]);
if (!empty($body['encodedFile'])) {
AdrModel::deleteDocumentAdr(['where' => ['res_id = ?'], 'data' => [$args['resId']]]);
ConvertPdfController::convert([
'resId' => $args['resId'],
'collId' => 'letterbox_coll'
]);
$customId = CoreConfigModel::getCustomId();
$customId = empty($customId) ? 'null' : $customId;
exec("php src/app/convert/scripts/FullTextScript.php --customId {$customId} --resId {$args['resId']} --collId letterbox_coll --userId {$GLOBALS['id']} > /dev/null &");
HistoryController::add([
'tableName' => 'res_letterbox',
'recordId' => $args['resId'],
'eventType' => 'UP',
'info' => _FILE_UPDATED,
'moduleId' => 'resource',
'eventId' => 'fileModification'
]);
}
HistoryController::add([
'tableName' => 'res_letterbox',
'recordId' => $args['resId'],
'eventType' => 'UP',
'info' => _DOC_UPDATED,
'moduleId' => 'resource',
'eventId' => 'resourceModification'
]);
return $response->withStatus(204);
}
public function updateStatus(Request $request, Response $response) public function updateStatus(Request $request, Response $response)
{ {
$data = $request->getParams(); $data = $request->getParams();
......
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