Как сделать так, чтобы эта конечная точка хорошо читала его параметры запроса и возвращала все объекты, которые ей соответствуют? - PullRequest
0 голосов
/ 23 октября 2019

Я создаю конечную точку поиска, чтобы найти все связанные объекты, соответствующие ее условию запроса. Хотя он возвращает «нет содержимого».

FillerResource.java:

    public List<FillerDto> find(@RequestParam String q) {
        if (!"condition".equals(q.split(":==")[0])) {
            throw new BadRequestException("query param q is incorrect, missing 'condition:=='");
        }
        return this.fillerBusinessController.findByCondition(Boolean.valueOf(q.split(":==")[1]));
    }

FillerBusinessController.java:

private Boolean evaluate(Filler filler) {
        return filler.getLight().booleanValue() && filler.getSpicy().booleanValue() == true;
    }

    public List<FillerDto> findByCondition(Boolean value) {
        return this.fillerDao.findAll().stream()
                .filter(filler -> this.evaluate(filler) == value)
                .map(FillerDto::new)
                .collect(Collectors.toList());

    }

FillerResourceIT.java:

    void testSearch() {
        this.webTestClient
                .post().uri(FillerResource.FILLERS)
                .body(BodyInserters.fromObject(new FillerDto("Chorizo", 50.00, 03.00, false, true, true)))
                .exchange()
                .expectStatus().isOk()
                .expectBody(FillerDto.class).returnResult().getResponseBody();
        this.webTestClient
                .post().uri(FillerResource.FILLERS)
                .body(BodyInserters.fromObject(new FillerDto("Bacon", 50.00, 03.00, false, true, true)))
                .exchange()
                .expectStatus().isOk()
                .expectBody(FillerDto.class).returnResult().getResponseBody();
        this.webTestClient
                .post().uri(FillerResource.FILLERS)
                .body(BodyInserters.fromObject(new FillerDto("Jamón", 50.00, 03.00, false, false, true)))
                .exchange()
                .expectStatus().isOk()
                .expectBody(FillerDto.class).returnResult().getResponseBody();
        this.webTestClient
                .get().uri(uriBuilder ->
                uriBuilder.path(FillerResource.FILLERS + FillerResource.SEARCH)
                        .queryParam("q", "condition:==true")
                        .build())
                .exchange()
                .expectStatus().isOk()
                .expectBodyList(FillerDto.class)
                .returnResult().getResponseBody().stream().collect(Collectors.toList());

    }
...