Search in sources :

Example 1 with ApiDoc

use of fr.wseduc.rs.ApiDoc in project statistics by OPEN-ENT-NG.

the class StatisticsController method getStructures.

@Post("/structures")
@ApiDoc("Get structures' names, UAIs and cities")
@SecuredAction("statistics.get.structures")
public void getStructures(final HttpServerRequest request) {
    RequestUtils.bodyToJson(request, pathPrefix + "schoolquery", new Handler<JsonObject>() {

        @Override
        public void handle(JsonObject data) {
            // parameters from the model (schoolIdArray / indicator / startDate / endDate / module)
            final JsonObject params = data;
            UserUtils.getUserInfos(eb, request, new Handler<UserInfos>() {

                @Override
                public void handle(final UserInfos user) {
                    if (user != null) {
                        JsonArray arr = params.getArray("schoolIdArray");
                        List<String> schoolIds = new ArrayList<String>();
                        for (int i = 0; i < arr.size(); i++) {
                            JsonObject obj = arr.get(i);
                            schoolIds.add((String) obj.getString("id"));
                        }
                        if (schoolIds == null || schoolIds.size() == 0) {
                            String errorMsg = i18n.translate("statistics.bad.request.invalid.schools", getHost(request), acceptLanguage(request));
                            badRequest(request, errorMsg);
                            return;
                        }
                        JsonArray structureIds = new JsonArray();
                        for (String school : schoolIds) {
                            structureIds.addString(school);
                        }
                        structureService.list(structureIds, new Handler<Either<String, JsonArray>>() {

                            @Override
                            public void handle(Either<String, JsonArray> event) {
                                if (event.isLeft()) {
                                    log.error(event.left().getValue());
                                    renderError(request);
                                } else {
                                    renderJson(request, event.right().getValue());
                                }
                            }
                        });
                    }
                // end if
                }
            });
        }
    });
}
Also used : JsonObject(org.vertx.java.core.json.JsonObject) Handler(org.vertx.java.core.Handler) UserInfos(org.entcore.common.user.UserInfos) JsonArray(org.vertx.java.core.json.JsonArray) Either(fr.wseduc.webutils.Either) SecuredAction(fr.wseduc.security.SecuredAction) Post(fr.wseduc.rs.Post) ApiDoc(fr.wseduc.rs.ApiDoc)

Aggregations

ApiDoc (fr.wseduc.rs.ApiDoc)1 Post (fr.wseduc.rs.Post)1 SecuredAction (fr.wseduc.security.SecuredAction)1 Either (fr.wseduc.webutils.Either)1 UserInfos (org.entcore.common.user.UserInfos)1 Handler (org.vertx.java.core.Handler)1 JsonArray (org.vertx.java.core.json.JsonArray)1 JsonObject (org.vertx.java.core.json.JsonObject)1