From 39e4cc99d0108b14f578bc8540f276241324bf8e Mon Sep 17 00:00:00 2001 From: Matteo Giordano Date: Mon, 13 Jul 2020 14:37:23 +0200 Subject: [PATCH 1/3] Reissue first invoice --- .../apiclient/dto/model/dto/SubscriptionPatchDTO.java | 3 +++ .../platform/apiclient/dto/model/enums/InvoiceStatus.java | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/SubscriptionPatchDTO.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/SubscriptionPatchDTO.java index 35ca0071d..bb1a251c7 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/SubscriptionPatchDTO.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/SubscriptionPatchDTO.java @@ -270,6 +270,9 @@ public enum SubscriptionPatchAction @Deprecated REFRESH_BILLING_ITEM_VALUES, + @ApiModelProperty( "Reissue the first invoice of a subscription" ) + REISSUE_FIRST_INVOICE, + @ApiModelProperty( "Approve a subscription" ) APPROVE, diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/InvoiceStatus.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/InvoiceStatus.java index f00faca37..3b81bbe49 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/InvoiceStatus.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/InvoiceStatus.java @@ -14,6 +14,11 @@ public enum InvoiceStatus @ApiModelProperty( "Payment expired" ) EXPIRED, @ApiModelProperty( "Payment received" ) PAID; + public static InvoiceStatus[] paid() + { + return new InvoiceStatus[] { DELAYED, PAID }; + } + public static InvoiceStatus[] unpaid() { return new InvoiceStatus[] { PENDING, REQUIRES_ACTION, REQUIRES_CAPTURE, UNPAID, EXPIRED }; From a1179b0299fe04806ec577889a49bbd9d9113397 Mon Sep 17 00:00:00 2001 From: Matteo Giordano Date: Tue, 14 Jul 2020 16:26:51 +0200 Subject: [PATCH 2/3] Patch invoice --- .../dto/model/dto/InvoicePatchDTO.java | 31 +++++++++++++++++++ .../dto/model/dto/SubscriptionPatchDTO.java | 3 -- .../platform/apiclient/api/InvoiceApi.java | 4 +++ 3 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/InvoicePatchDTO.java diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/InvoicePatchDTO.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/InvoicePatchDTO.java new file mode 100644 index 000000000..b20b1209a --- /dev/null +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/InvoicePatchDTO.java @@ -0,0 +1,31 @@ +package com.cloudesire.platform.apiclient.dto.model.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel( description = "Perform an operation on an invoice" ) +public class InvoicePatchDTO extends DTO +{ + @ApiModelProperty( "Update operation" ) + private InvoicePatchAction action; + + public InvoicePatchDTO( InvoicePatchAction action ) + { + this.action = action; + } + + public InvoicePatchDTO() + { + } + + public InvoicePatchAction getAction() + { + return action; + } + + public enum InvoicePatchAction + { + @ApiModelProperty( "Reissue the first invoice of a subscription" ) + REISSUE + } +} diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/SubscriptionPatchDTO.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/SubscriptionPatchDTO.java index bb1a251c7..35ca0071d 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/SubscriptionPatchDTO.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/dto/SubscriptionPatchDTO.java @@ -270,9 +270,6 @@ public enum SubscriptionPatchAction @Deprecated REFRESH_BILLING_ITEM_VALUES, - @ApiModelProperty( "Reissue the first invoice of a subscription" ) - REISSUE_FIRST_INVOICE, - @ApiModelProperty( "Approve a subscription" ) APPROVE, diff --git a/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/InvoiceApi.java b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/InvoiceApi.java index ce9ab17b0..b61914a43 100644 --- a/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/InvoiceApi.java +++ b/cloudesire-api-client/src/main/java/com/cloudesire/platform/apiclient/api/InvoiceApi.java @@ -2,6 +2,7 @@ import com.cloudesire.platform.apiclient.dto.model.dto.CardDataDTO; import com.cloudesire.platform.apiclient.dto.model.dto.InvoiceDTO; +import com.cloudesire.platform.apiclient.dto.model.dto.InvoicePatchDTO; import com.cloudesire.platform.apiclient.dto.model.patch.InvoicePaymentReferenceDTO; import com.cloudesire.platform.apiclient.query.InvoiceQuery; import okhttp3.ResponseBody; @@ -51,6 +52,9 @@ public interface InvoiceApi @GET( "invoice/{id}/refresh" ) Call refreshPayment( @Path( "id" ) int id ); + @PATCH( "invoice/{id}" ) + Call patch( @Path( "id" ) int id, @Body InvoicePatchDTO patch ); + @PATCH( "invoice/{id}/pay" ) Call setPaid( @Path( "id" ) int id, @Body InvoicePaymentReferenceDTO input ); From 934e2c7d3a768c246a04e1dbca26a5a387daf9a9 Mon Sep 17 00:00:00 2001 From: Matteo Giordano Date: Wed, 15 Jul 2020 10:11:09 +0200 Subject: [PATCH 3/3] Add REISSUE action --- .../dto/model/enums/InvoiceOperationType.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/InvoiceOperationType.java b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/InvoiceOperationType.java index bc38b5380..936a99ca2 100644 --- a/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/InvoiceOperationType.java +++ b/cloudesire-api-client-dto/src/main/java/com/cloudesire/platform/apiclient/dto/model/enums/InvoiceOperationType.java @@ -1,17 +1,21 @@ package com.cloudesire.platform.apiclient.dto.model.enums; +import io.swagger.annotations.ApiModelProperty; + public enum InvoiceOperationType { - PAID, // Set the Invoice paid - PAY, // Customer can then pay the invoice! + @ApiModelProperty( "Set the invoice to paid" ) + PAID, + + @ApiModelProperty( "Pay the invoice" ) + PAY, - /** - * Download invoice PDF - */ + @ApiModelProperty( "Download invoice PDF" ) PDF, - /** - * (re)generate invoice PDF - */ - MAKE_PDF + @ApiModelProperty( "(re)generate invoice PDF" ) + MAKE_PDF, + + @ApiModelProperty( "Reissue the invoice" ) + REISSUE }