Skip to content

Commit

Permalink
[DE-744] Add query parameters for list subscription group proforma in…
Browse files Browse the repository at this point in the history
…voices (#120)

- Add query parameters for list subscription group proforma invoices
- Use ProformaInvoiceStatus for list proforma invoices status query parameter
  • Loading branch information
maciej-nedza authored Mar 1, 2024
1 parent 3a93074 commit 63017ae
Show file tree
Hide file tree
Showing 5 changed files with 392 additions and 21 deletions.
23 changes: 19 additions & 4 deletions doc/controllers/proforma-invoices.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,20 @@ By default, proforma invoices returned on the index will only include totals, no

```java
ListProformaInvoicesResponse listSubscriptionGroupProformaInvoices(
final String uid)
final ListSubscriptionGroupProformaInvoicesInput input)
```

## Parameters

| Parameter | Type | Tags | Description |
| --- | --- | --- | --- |
| `uid` | `String` | Template, Required | The uid of the subscription group |
| `lineItems` | `Boolean` | Query, Optional | Include line items data |
| `discounts` | `Boolean` | Query, Optional | Include discounts data |
| `taxes` | `Boolean` | Query, Optional | Include taxes data |
| `credits` | `Boolean` | Query, Optional | Include credits data |
| `payments` | `Boolean` | Query, Optional | Include payments data |
| `customFields` | `Boolean` | Query, Optional | Include custom fields data |

## Response Type

Expand All @@ -91,10 +97,19 @@ ListProformaInvoicesResponse listSubscriptionGroupProformaInvoices(
## Example Usage

```java
String uid = "uid0";
ListSubscriptionGroupProformaInvoicesInput listSubscriptionGroupProformaInvoicesInput = new ListSubscriptionGroupProformaInvoicesInput.Builder(
"uid0"
)
.lineItems(false)
.discounts(false)
.taxes(false)
.credits(false)
.payments(false)
.customFields(false)
.build();

try {
ListProformaInvoicesResponse result = proformaInvoicesController.listSubscriptionGroupProformaInvoices(uid);
ListProformaInvoicesResponse result = proformaInvoicesController.listSubscriptionGroupProformaInvoices(listSubscriptionGroupProformaInvoicesInput);
System.out.println(result);
} catch (ApiException e) {
e.printStackTrace();
Expand Down Expand Up @@ -218,7 +233,7 @@ ListProformaInvoicesResponse listProformaInvoices(
| `subscriptionId` | `int` | Template, Required | The Chargify id of the subscription |
| `startDate` | `String` | Query, Optional | The beginning date range for the invoice's Due Date, in the YYYY-MM-DD format. |
| `endDate` | `String` | Query, Optional | The ending date range for the invoice's Due Date, in the YYYY-MM-DD format. |
| `status` | [`InvoiceStatus`](../../doc/models/invoice-status.md) | Query, Optional | The current status of the invoice. Allowed Values: draft, open, paid, pending, voided |
| `status` | [`ProformaInvoiceStatus`](../../doc/models/proforma-invoice-status.md) | Query, Optional | The current status of the invoice. Allowed Values: draft, open, paid, pending, voided |
| `page` | `Integer` | Query, Optional | Result records are organized in pages. By default, the first page of results is displayed. The page parameter specifies a page number of results to fetch. You can start navigating through the pages to consume the results. You do this by passing in a page parameter. Retrieve the next page by adding ?page=2 to the query string. If there are no results to return, then an empty result set will be returned.<br>Use in query `page=1`. |
| `perPage` | `Integer` | Query, Optional | This parameter indicates how many records to fetch in each request. Default value is 20. The maximum allowed values is 200; any per_page value over 200 will be changed to 200.<br>Use in query `per_page=200`. |
| `direction` | [`Direction`](../../doc/models/direction.md) | Query, Optional | The sort direction of the returned invoices. |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import com.maxio.advancedbilling.models.CreateSubscriptionRequest;
import com.maxio.advancedbilling.models.ListProformaInvoicesInput;
import com.maxio.advancedbilling.models.ListProformaInvoicesResponse;
import com.maxio.advancedbilling.models.ListSubscriptionGroupProformaInvoicesInput;
import com.maxio.advancedbilling.models.ProformaInvoice;
import com.maxio.advancedbilling.models.SignupProformaPreviewResponse;
import com.maxio.advancedbilling.models.VoidInvoiceRequest;
Expand Down Expand Up @@ -89,27 +90,39 @@ private ApiCall<Void, ApiException> prepareCreateConsolidatedProformaInvoiceRequ
* proforma invoices returned on the index will only include totals, not detailed breakdowns for
* `line_items`, `discounts`, `taxes`, `credits`, `payments`, `custom_fields`. To include
* breakdowns, pass the specific field as a key in the query with a value set to true.
* @param uid Required parameter: The uid of the subscription group
* @param input ListSubscriptionGroupProformaInvoicesInput object containing request parameters
* @return Returns the ListProformaInvoicesResponse response from the API call
* @throws ApiException Represents error response from the server.
* @throws IOException Signals that an I/O exception of some sort has occurred.
*/
public ListProformaInvoicesResponse listSubscriptionGroupProformaInvoices(
final String uid) throws ApiException, IOException {
return prepareListSubscriptionGroupProformaInvoicesRequest(uid).execute();
final ListSubscriptionGroupProformaInvoicesInput input) throws ApiException, IOException {
return prepareListSubscriptionGroupProformaInvoicesRequest(input).execute();
}

/**
* Builds the ApiCall object for listSubscriptionGroupProformaInvoices.
*/
private ApiCall<ListProformaInvoicesResponse, ApiException> prepareListSubscriptionGroupProformaInvoicesRequest(
final String uid) throws IOException {
final ListSubscriptionGroupProformaInvoicesInput input) throws IOException {
return new ApiCall.Builder<ListProformaInvoicesResponse, ApiException>()
.globalConfig(getGlobalConfiguration())
.requestBuilder(requestBuilder -> requestBuilder
.server(Server.ENUM_DEFAULT.value())
.path("/subscription_groups/{uid}/proforma_invoices.json")
.templateParam(param -> param.key("uid").value(uid)
.queryParam(param -> param.key("line_items")
.value(input.getLineItems()).isRequired(false))
.queryParam(param -> param.key("discounts")
.value(input.getDiscounts()).isRequired(false))
.queryParam(param -> param.key("taxes")
.value(input.getTaxes()).isRequired(false))
.queryParam(param -> param.key("credits")
.value(input.getCredits()).isRequired(false))
.queryParam(param -> param.key("payments")
.value(input.getPayments()).isRequired(false))
.queryParam(param -> param.key("custom_fields")
.value(input.getCustomFields()).isRequired(false))
.templateParam(param -> param.key("uid").value(input.getUid())
.shouldEncode(true))
.headerParam(param -> param.key("accept").value("application/json"))
.withAuth(auth -> auth
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public class ListProformaInvoicesInput {
private int subscriptionId;
private String startDate;
private String endDate;
private InvoiceStatus status;
private ProformaInvoiceStatus status;
private Integer page;
private Integer perPage;
private Direction direction;
Expand Down Expand Up @@ -48,7 +48,7 @@ public ListProformaInvoicesInput() {
* @param subscriptionId int value for subscriptionId.
* @param startDate String value for startDate.
* @param endDate String value for endDate.
* @param status InvoiceStatus value for status.
* @param status ProformaInvoiceStatus value for status.
* @param page Integer value for page.
* @param perPage Integer value for perPage.
* @param direction Direction value for direction.
Expand All @@ -63,7 +63,7 @@ public ListProformaInvoicesInput(
int subscriptionId,
String startDate,
String endDate,
InvoiceStatus status,
ProformaInvoiceStatus status,
Integer page,
Integer perPage,
Direction direction,
Expand Down Expand Up @@ -153,21 +153,21 @@ public void setEndDate(String endDate) {
/**
* Getter for Status.
* The current status of the invoice. Allowed Values: draft, open, paid, pending, voided
* @return Returns the InvoiceStatus
* @return Returns the ProformaInvoiceStatus
*/
@JsonGetter("status")
@JsonInclude(JsonInclude.Include.NON_NULL)
public InvoiceStatus getStatus() {
public ProformaInvoiceStatus getStatus() {
return status;
}

/**
* Setter for Status.
* The current status of the invoice. Allowed Values: draft, open, paid, pending, voided
* @param status Value for InvoiceStatus
* @param status Value for ProformaInvoiceStatus
*/
@JsonSetter("status")
public void setStatus(InvoiceStatus status) {
public void setStatus(ProformaInvoiceStatus status) {
this.status = status;
}

Expand Down Expand Up @@ -414,7 +414,7 @@ public static class Builder {
private int subscriptionId;
private String startDate;
private String endDate;
private InvoiceStatus status;
private ProformaInvoiceStatus status;
private Integer page = 1;
private Integer perPage = 20;
private Direction direction = Direction.DESC;
Expand Down Expand Up @@ -471,10 +471,10 @@ public Builder endDate(String endDate) {

/**
* Setter for status.
* @param status InvoiceStatus value for status.
* @param status ProformaInvoiceStatus value for status.
* @return Builder
*/
public Builder status(InvoiceStatus status) {
public Builder status(ProformaInvoiceStatus status) {
this.status = status;
return this;
}
Expand Down
Loading

0 comments on commit 63017ae

Please sign in to comment.