Определите, какой метод вызывать на основе значения Optional - PullRequest
0 голосов
/ 28 мая 2020

Возможно ли как-то изменить приведенный ниже код, чтобы в случае отсутствия значения status возвращались все объекты PaymentLog, хранящиеся в базе данных, а не только те, у которых status равно 404? В принципе, я бы хотел, чтобы переменная status не была предоставлена ​​для вызова другого метода на уровне обслуживания logService.getAllPaymentLogs()

@GetMapping(Endpoints.LOGS.PAYMENT_LOGS)
public Page<PaymentLog> getPaymentLog(@RequestParam Optional<Integer> status) {
    return logService.getPaymentLogStatus(status.orElse(404), PageRequest.of(0, 10));
}

Это getPaymentLogStatus() и getAllPaymentLogs

@Override
public Page<PaymentLog> getPaymentLog(Pageable pageable) {
    return paymentLogRepository.getAllBy(pageable);
}

И

@Override
public Page<PaymentLog> getPaymentLog(int status, Pageable pageable) {
    return paymentLogRepository.getAllByStatus(status, pageable);
}

1 Ответ

1 голос
/ 28 мая 2020

@ 123 ответил на вопрос в сеансе комментирования:

status.map(s -> getPaymentLog(s, page)).orElseGet(() -> getPaymentLog(page))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...