Получить общее количество счетов для клиента - PullRequest
0 голосов
/ 07 июля 2019

Я хотел бы показать список счетов моим клиентам s.t. они могут загрузить каждый счет-фактуру в настройках биллинга своего аккаунта.

Мой бэкэнд обычно работает с подходами classig size и page для работы с контентом, доступным для просмотра. Spring уже предлагает множество простых реализаций для этого.

Однако, похоже, что Stripe не позволяет мне распечатывать накладные другим способом, передавая идентификатор объекта курсора (см. starting_after).

Поскольку я работаю с HATEOAS, я не могу по-настоящему с этим работать. Единственный способ, который я вижу в данный момент, - это повторять все счета снова и снова, чтобы «подделать» классический подход к нумерации страниц (как объяснено выше).

Для этого может быть простое решение, но, к сожалению, эта часть информации не отправляется на мой сервер: totalCount.

Когда я получаю InvoiceCollection, я вижу, что есть также свойство totalCount, но оно всегда null:

@Override
public Page<InvoiceModel> findByAllByCustomerId(String customerId, Pageable pageable) {

    Map<String, Object> params = new HashMap<>();
    params.put("customer", customerId);
    params.put("limit", pageable.getPageSize());

    InvoiceCollection invoiceCollection;
    List<Invoice> invoiceList;
    try {
        invoiceCollection = Invoice.list(params);
        invoiceList = invoiceCollection.getData();
    } catch (StripeException e) {
        e.printStackTrace();
        throw new RuntimeException();
    }

    List<InvoiceModel> collect = invoiceList.stream().map(invoice -> {
        InvoiceModel invoiceModel = new InvoiceModel();
        invoiceModel.setId(invoice.getId());
        invoiceModel.setPdfUrl(invoice.getInvoicePdf());
        invoiceModel.setInvoiceNumber(invoice.getNumber());

        ZonedDateTime billingDate = Instant.ofEpochSecond(invoice.getDueDate()).atZone(ZoneId.of("UTC"));
        invoiceModel.setBillingDate(billingDate);
        return invoiceModel;
    }).collect(Collectors.toList());

    // This I'd like to compute based on 'totalCount'
    long total = 0L;

    return new PageImpl<>(collect, pageable, total);
}

enter image description here

Существует ли какой-либо способ получения общего количества счетов? Или есть даже другой способ сделать это?

Спасибо за любую помощь в этом.

...