diff --git a/rest/index.php b/rest/index.php index 81b5f39915cfbe18514684b3f14200980c8f59fb..369be2a6f29b8873dc571bd4b6654f8260050ac7 100755 --- a/rest/index.php +++ b/rest/index.php @@ -358,7 +358,7 @@ $app->put('/res/externalInfos', \Resource\controllers\ResController::class . ':u $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}/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->get('/followedResources', \Resource\controllers\UserFollowedResourceController::class . ':getFollowedResources'); $app->get('/followedResources/{resId}/baskets', \Resource\controllers\UserFollowedResourceController::class . ':getBasketsFromFolder'); diff --git a/src/app/resource/controllers/UserFollowedResourceController.php b/src/app/resource/controllers/UserFollowedResourceController.php index 8bd1b454bdf33ea7d7ba80c64e11e61e85874d75..6d6c52e026d9ba9b1c2203a7f53db3c2d0c940b1 100644 --- a/src/app/resource/controllers/UserFollowedResourceController.php +++ b/src/app/resource/controllers/UserFollowedResourceController.php @@ -28,25 +28,29 @@ use SrcCore\controllers\PreparedClauseController; 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']); } - $following = UserFollowedResourceModel::get([ - 'where' => ['user_id = ?', 'res_id = ?'], - 'data' => [$GLOBALS['id'], $args['resId']] - ]); + foreach ($body['resources'] as $resId) { + $following = UserFollowedResourceModel::get([ + 'where' => ['user_id = ?', 'res_id = ?'], + 'data' => [$GLOBALS['id'], $resId] + ]); - if (!empty($following)) { - return $response->withStatus(204); - } + if (!empty($following)) { + continue; + } - UserFollowedResourceModel::create([ - 'userId' => $GLOBALS['id'], - 'resId' => $args['resId'] - ]); + UserFollowedResourceModel::create([ + 'userId' => $GLOBALS['id'], + 'resId' => $resId + ]); + } return $response->withStatus(204); } diff --git a/src/frontend/app/indexation/indexing-form/indexing-form.component.ts b/src/frontend/app/indexation/indexing-form/indexing-form.component.ts index df3b197d3eb846dee1b499df914a03863c0ab9a8..b057f00dfcf8e47f9c277ba669ecbde79ccbf144 100644 --- a/src/frontend/app/indexation/indexing-form/indexing-form.component.ts +++ b/src/frontend/app/indexation/indexing-form/indexing-form.component.ts @@ -886,7 +886,7 @@ export class IndexingFormComponent implements OnInit { if (this.mode !== 'indexation') { 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) => { this.notify.handleErrors(err); return of(false);