Skip to content
Snippets Groups Projects
Commit 25431b94 authored by Guillaume Heurtier's avatar Guillaume Heurtier
Browse files

FEAT #11403 TIME 0:15 follow route now takes an array of resources id

parent bb84b6a0
No related branches found
No related tags found
No related merge requests found
...@@ -358,7 +358,7 @@ $app->put('/res/externalInfos', \Resource\controllers\ResController::class . ':u ...@@ -358,7 +358,7 @@ $app->put('/res/externalInfos', \Resource\controllers\ResController::class . ':u
$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->get('/resources/{resId}/users/{userId}/groups/{groupId}/baskets/{basketId}/processingData', \Resource\controllers\ResController::class . ':getProcessingData'); $app->get('/resources/{resId}/users/{userId}/groups/{groupId}/baskets/{basketId}/processingData', \Resource\controllers\ResController::class . ':getProcessingData');
$app->post('/resources/{resId}/follow', \Resource\controllers\UserFollowedResourceController::class . ':follow'); $app->post('/resources/follow', \Resource\controllers\UserFollowedResourceController::class . ':follow');
$app->delete('/resources/unfollow', \Resource\controllers\UserFollowedResourceController::class . ':unFollow'); $app->delete('/resources/unfollow', \Resource\controllers\UserFollowedResourceController::class . ':unFollow');
$app->get('/followedResources', \Resource\controllers\UserFollowedResourceController::class . ':getFollowedResources'); $app->get('/followedResources', \Resource\controllers\UserFollowedResourceController::class . ':getFollowedResources');
$app->get('/followedResources/{resId}/baskets', \Resource\controllers\UserFollowedResourceController::class . ':getBasketsFromFolder'); $app->get('/followedResources/{resId}/baskets', \Resource\controllers\UserFollowedResourceController::class . ':getBasketsFromFolder');
......
...@@ -28,25 +28,29 @@ use SrcCore\controllers\PreparedClauseController; ...@@ -28,25 +28,29 @@ use SrcCore\controllers\PreparedClauseController;
class UserFollowedResourceController class UserFollowedResourceController
{ {
public function follow(Request $request, Response $response, array $args) public function follow(Request $request, Response $response)
{ {
if (!ResController::hasRightByResId(['resId' => [$args['resId']], 'userId' => $GLOBALS['id']])){ $body = $request->getParsedBody();
if (!ResController::hasRightByResId(['resId' => $body['resources'], 'userId' => $GLOBALS['id']])){
return $response->withStatus(403)->withJson(['errors' => 'Document out of perimeter']); return $response->withStatus(403)->withJson(['errors' => 'Document out of perimeter']);
} }
$following = UserFollowedResourceModel::get([ foreach ($body['resources'] as $resId) {
'where' => ['user_id = ?', 'res_id = ?'], $following = UserFollowedResourceModel::get([
'data' => [$GLOBALS['id'], $args['resId']] 'where' => ['user_id = ?', 'res_id = ?'],
]); 'data' => [$GLOBALS['id'], $resId]
]);
if (!empty($following)) { if (!empty($following)) {
return $response->withStatus(204); continue;
} }
UserFollowedResourceModel::create([ UserFollowedResourceModel::create([
'userId' => $GLOBALS['id'], 'userId' => $GLOBALS['id'],
'resId' => $args['resId'] 'resId' => $resId
]); ]);
}
return $response->withStatus(204); return $response->withStatus(204);
} }
......
...@@ -886,7 +886,7 @@ export class IndexingFormComponent implements OnInit { ...@@ -886,7 +886,7 @@ export class IndexingFormComponent implements OnInit {
if (this.mode !== 'indexation') { if (this.mode !== 'indexation') {
if (this.arrFormControl['mail­tracking'].value) { if (this.arrFormControl['mail­tracking'].value) {
this.http.post(`../../rest/resources/${this.resId}/follow`, {}).pipe( this.http.post('../../rest/resources/follow', {resources: [this.resId]}).pipe(
catchError((err: any) => { catchError((err: any) => {
this.notify.handleErrors(err); this.notify.handleErrors(err);
return of(false); return of(false);
......
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