Я действительно новичок в использовании Java Play Framework, и у меня есть некоторые сомнения по поводу создания этого API.Мне нужно сделать 1 запрос к моей базе данных (чтобы проверить, получил ли токен реальный идентификатор пользователя), а затем 2 HTTP-запроса к внешней службе.Я хочу создать ответ, используя эту логику: мне нужно получить все рабочие места из списка рабочих из пользовательского кода (dni), а затем мне нужно создать ответ со всеми данными, подобными этому JSON ->
{
"status": "OK",
"error": "",
"result": [
{
"id_entorno": 1,
"worker": {
"id_worker": 654,
"firstName": "Juanjo",
"secondName": "Sosa"
},
"workplace": {
"id_workplace": 1234,
"description": "Edificio Centris",
"latitude": 123.123,
"longitude": 123.123,
"street": "Glorieta Fernando Quiñones",
"city": "Tomares",
"state": "Andalucía",
"country": "España"
},
"favorite": false
},
{
"id_entorno": 2,
"worker": {
"id_worker": 654,
"firstName": "Juan José",
"secondName": "Sosa Osuna"
},
"workplace": {
"id_workplace": 542,
"description": "Edificio Plaza Mayor",
"latitude": 21.123,
"longitude": 12.123,
"street": "Avenida San Juan",
"city": "Madrid",
"state": "Comunidad de Madrid",
"country": "España"
},
"favorite": true
}
]
}
А вот мой код ->
public CompletionStage<Result> getWorkplaces(Long idEnv) {
if(request().getHeaders().get(AUTH).isPresent()) {
if(idEnv != 0 && idEnv != null){
String token = request().getHeaders().get(AUTH).get().replace("Bearer ", "");
String idUser = AuthorizationUtil.getUserFromJwt(jwtValidator, token);
if (idUser != null) {
CompletionStage<User> searchService = userRepository.findById(String.valueOf(idUser));
CompletionStage<Result> result = searchService.thenComposeAsync(u -> {
if (u != null) {
String dni = u.getDni();
if(dni != null){
// TODO ...
return thirdPartyWs.peopleLocator(idEnv, dni, Long.parseLong(idUser)).thenComposeAsync(workerStream -> {
if (workerStream != null) {
// TODO ...
workerStream.collect(Collectors.toList()).forEach(worker -> {
Long workerId = worker.getIdWorker();
List<ResponseGetWorkplaces> listaWorkplaces = new ArrayList<>();
return thirdPartyWs.getWorkplaces(idEnv, workerId).thenApplyAsync(workplaceStream -> {
if (workplaceStream != null) {
workplaceStream.collect(Collectors.toList()).forEach(workplace -> {
ResponseWorker resw = new ResponseWorker(worker.getIdWorker(), worker.getFirstName(), worker.getSecondName());
ResponseWorkplace reswp = new ResponseWorkplace(workplace.getIdWorkplace(), workplace.getDescription(), workplace.getLatitude(), workplace.getLongitude(), workplace.getStreet(), workplace.getCity(), workplace.getState(), workplace.getCountry());
//TODO ...
ResponseGetWorkplaces res = new ResponseGetWorkplaces(idEnv, resw, reswp, false);
listaWorkplaces.add(res);
});
return ok(JsonUtil.responseFromJsonNode(true, Json.toJson(listaWorkplaces), ""));
} else {
return notFound(JsonUtil.responseFromJsonNode(false, Json.toJson(ENTITY_NOT_FOUND), ""));
}
}, executionContext.current());
});
} else {
return CompletableFuture.supplyAsync(() -> notFound(JsonUtil.responseFromJsonNode(false, Json.toJson(ENTITY_NOT_FOUND), "")));
}
}, executionContext.current());
} else {
return CompletableFuture.supplyAsync(() -> badRequest(JsonUtil.responseFromJsonNode(false, Json.toJson(ERROR_EMPTY_DNI), ""))); }
} else {
return CompletableFuture.supplyAsync(() -> forbidden(JsonUtil.responseFromJsonNode(false, Json.toJson(ERROR_INVALID_TOKEN), ""))); }
}, executionContext.current());
return result.thenApplyAsync(finishResult -> finishResult);
} else {
return CompletableFuture.supplyAsync(() -> forbidden(JsonUtil.responseFromJsonNode(false, Json.toJson(ERROR_INVALID_TOKEN), "")));
}
// TODO ...
} else {
return CompletableFuture.supplyAsync(() -> badRequest(JsonUtil.responseFromList(false, new ArrayList<>(), INVALID_PARAMETERS)));
}
} else {
return CompletableFuture.supplyAsync(() -> forbidden(JsonUtil.responseFromJsonNode(false, Json.toJson(ERROR_NOT_AUTH), "")));
}
}
У меня есть ошибки, которые говорят: «Неожиданное возвращаемое значение» и «Отсутствует инструкция возврата».Что я делаю неправильно?Может кто-нибудь помочь мне, пожалуйста?