diff --git a/src/Bundle/ChillPersonBundle/Controller/SocialWorkEvaluationApiController.php b/src/Bundle/ChillPersonBundle/Controller/SocialWorkEvaluationApiController.php new file mode 100644 index 000000000..24b919978 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Controller/SocialWorkEvaluationApiController.php @@ -0,0 +1,46 @@ +paginatorFactory = $paginatorFactory; + } + + /** + * @Route("/api/1.0/person/social-work/evaluation/by-social-action/{action_id}.json", + * name="chill_person_evaluation_index_by_social_action", + * requirements={ + * "_format": "json" + * } + * ) + * @ParamConverter("action", options={"id": "action_id"}) + * @param SocialAction $action + * @return Response + */ + public function listEvaluationBySocialAction(SocialAction $action): Response + { + $pagination = $this->paginatorFactory->create($action->getEvaluations()->count()); + + $evaluations = $action->getEvaluations()->slice($pagination->getCurrentPageFirstItemNumber(), + $pagination->getItemsPerPage()); + $collection = new Collection($evaluations, $pagination); + + return $this->json($collection, Response::HTTP_OK, [], [ 'groups' => [ 'read' ]]); + } +} diff --git a/src/Bundle/ChillPersonBundle/chill.api.specs.yaml b/src/Bundle/ChillPersonBundle/chill.api.specs.yaml index 0684a352c..a9fc9f1cd 100644 --- a/src/Bundle/ChillPersonBundle/chill.api.specs.yaml +++ b/src/Bundle/ChillPersonBundle/chill.api.specs.yaml @@ -217,7 +217,7 @@ components: type: integer type: type: string - enum: + enum: - 'accompanying_period_work' note: type: string @@ -296,7 +296,7 @@ paths: $ref: "#/components/schemas/Person" 403: description: "Unauthorized" - + /1.0/person/person.json: post: tags: @@ -1035,7 +1035,7 @@ paths: get: tags: - person - summary: Return a list of all origins + summary: Return a list of all origins responses: 200: description: "ok" @@ -1043,7 +1043,7 @@ paths: /1.0/person/accompanying-period/origin/{id}.json: get: tags: - - person + - person summary: Return an origin by id parameters: - name: id @@ -1257,7 +1257,7 @@ paths: /1.0/person/social/social-action.json: get: tags: - - accompanying-course-work + - social-work-social-action summary: get a list of social action responses: 401: @@ -1268,7 +1268,7 @@ paths: /1.0/person/social/social-action/{id}.json: get: tags: - - accompanying-course-work + - social-work-social-action parameters: - name: id in: path @@ -1291,7 +1291,7 @@ paths: /1.0/person/social/social-action/by-social-issue/{id}.json: get: tags: - - accompanying-course-work + - social-work-social-action parameters: - name: id in: path @@ -1311,6 +1311,25 @@ paths: 400: description: "Bad Request" + /1.0/person/social-work/evaluation/by-social-action/{social_action_id}.json: + get: + tags: + - social-work-evaluation + summary: return a list of evaluation which are available for a given social action + parameters: + - name: social_action_id + in: path + required: true + description: The social action's id + schema: + type: integer + format: integer + minimum: 1 + responses: + 200: + description: ok + 404: + description: not found /1.0/person/social-work/social-issue.json: @@ -1321,7 +1340,7 @@ paths: responses: 200: description: "ok" - + /1.0/person/social-work/social-issue/{id}.json: get: tags: @@ -1347,7 +1366,7 @@ paths: description: "not found" 401: description: "Unauthorized" - + /1.0/person/social-work/result.json: get: tags: