diff --git a/src/main/java/com/phonepe/sdk/pg/common/BaseClient.java b/src/main/java/com/phonepe/sdk/pg/common/BaseClient.java index fcb5529..2456b5d 100644 --- a/src/main/java/com/phonepe/sdk/pg/common/BaseClient.java +++ b/src/main/java/com/phonepe/sdk/pg/common/BaseClient.java @@ -36,6 +36,8 @@ import lombok.SneakyThrows; import okhttp3.OkHttpClient; +import javax.validation.constraints.Max; + @Getter public abstract class BaseClient { @@ -47,6 +49,7 @@ public abstract class BaseClient { protected EventPublisherFactory eventPublisherFactory; protected EventPublisher eventPublisher; private boolean shouldPublishEvents; + protected List headers; protected BaseClient( String clientId, @@ -56,6 +59,7 @@ protected BaseClient( boolean shouldPublishEvents) { this.okHttpClient = new OkHttpClient(); this.objectMapper = new ObjectMapper(); + this.headers = new List(); this.env = env; this.credentialConfig = CredentialConfig.builder() @@ -76,6 +80,7 @@ protected BaseClient( this.env, this.eventPublisher); this.eventPublisher.startPublishingEvents(tokenService::getAuthToken); + this.headers = prepareHeaders(); } @SneakyThrows @@ -93,7 +98,7 @@ protected T requestViaAuthRefresh( .objectMapper(this.objectMapper) .responseTypeReference(responseTypeReference) .methodName(methodName) - .headers(addAuthHeader(httpHeaders)) + .headers(this.headers) .requestData(requestData) .hostURL(this.env.getPgHostUrl()) .encodingType(APPLICATION_JSON) @@ -109,14 +114,30 @@ protected T requestViaAuthRefresh( } } - @SneakyThrows - protected List addAuthHeader(List headers) { + protected void prepareHeaders() { headers.add( HttpHeaderPair.builder() .key(Headers.OAUTH_AUTHORIZATION) .value(tokenService.getAuthToken()) .build()); - - return headers; + headers.add( + HttpHeaderPair.builder().key(Headers.CONTENT_TYPE).value(APPLICATION_JSON).build()); + headers.add( + HttpHeaderPair.builder().key(Headers.SOURCE).value(Headers.INTEGRATION).build()); + headers.add( + HttpHeaderPair.builder() + .key(Headers.SOURCE_VERSION) + .value(Headers.API_VERSION) + .build()); + headers.add( + HttpHeaderPair.builder() + .key(Headers.SOURCE_PLATFORM) + .value(Headers.SDK_TYPE) + .build()); + headers.add( + HttpHeaderPair.builder() + .key(Headers.SOURCE_PLATFORM_VERSION) + .value(Headers.SDK_VERSION) + .build()); } } diff --git a/src/main/java/com/phonepe/sdk/pg/payments/v2/CustomCheckoutClient.java b/src/main/java/com/phonepe/sdk/pg/payments/v2/CustomCheckoutClient.java index 1fd5d8d..680b42c 100644 --- a/src/main/java/com/phonepe/sdk/pg/payments/v2/CustomCheckoutClient.java +++ b/src/main/java/com/phonepe/sdk/pg/payments/v2/CustomCheckoutClient.java @@ -48,7 +48,6 @@ public class CustomCheckoutClient extends BaseClient { private static CustomCheckoutClient client; - private List headers; private CustomCheckoutClient( final String clientId, @@ -60,7 +59,7 @@ private CustomCheckoutClient( this.eventPublisher.send( BaseEvent.buildInitClientEvent( FlowType.PG, EventType.CUSTOM_CHECKOUT_CLIENT_INITIALIZED)); - this.prepareHeaders(); + this.addClientSpecificHeaders(); } /** @@ -149,8 +148,7 @@ public PgPaymentResponse pay(PgPaymentRequest pgPaymentRequest) { pgPaymentRequest, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildCustomCheckoutPayEvent( EventState.SUCCESS, pgPaymentRequest, url, EventType.PAY_SUCCESS)); @@ -198,8 +196,7 @@ public OrderStatusResponse getOrderStatus(String merchantOrderId, boolean detail Collections.singletonMap( CustomCheckoutConstants.ORDER_DETAILS, Boolean.toString(details)), - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildOrderStatusEvent( EventState.SUCCESS, @@ -237,8 +234,7 @@ public RefundResponse refund(RefundRequest refundRequest) { refundRequest, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildRefundEvent( EventState.SUCCESS, @@ -276,8 +272,7 @@ public CreateSdkOrderResponse createSdkOrder(CreateSdkOrderRequest createSdkOrde createSdkOrderRequest, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildCreateSdkOrderEvent( EventState.SUCCESS, @@ -317,8 +312,7 @@ public OrderStatusResponse getTransactionStatus(String transactionId) { null, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildTransactionStatusEvent( EventState.SUCCESS, @@ -357,8 +351,7 @@ public RefundStatusResponse getRefundStatus(String refundId) { null, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildRefundStatusEvent( EventState.SUCCESS, @@ -410,26 +403,11 @@ public CallbackResponse validateCallback( } /** Prepares the headers for CustomCheckout Client */ - private void prepareHeaders() { - this.headers = new ArrayList<>(); - headers.add( - HttpHeaderPair.builder().key(Headers.CONTENT_TYPE).value(APPLICATION_JSON).build()); - headers.add( - HttpHeaderPair.builder().key(Headers.SOURCE).value(Headers.INTEGRATION).build()); + private void addClientSpecificHeaders() { headers.add( HttpHeaderPair.builder() .key(Headers.SOURCE_VERSION) .value(Headers.API_VERSION) .build()); - headers.add( - HttpHeaderPair.builder() - .key(Headers.SOURCE_PLATFORM) - .value(Headers.SDK_TYPE) - .build()); - headers.add( - HttpHeaderPair.builder() - .key(Headers.SOURCE_PLATFORM_VERSION) - .value(Headers.SDK_VERSION) - .build()); } } diff --git a/src/main/java/com/phonepe/sdk/pg/payments/v2/StandardCheckoutClient.java b/src/main/java/com/phonepe/sdk/pg/payments/v2/StandardCheckoutClient.java index 3dbd0e0..35426b5 100644 --- a/src/main/java/com/phonepe/sdk/pg/payments/v2/StandardCheckoutClient.java +++ b/src/main/java/com/phonepe/sdk/pg/payments/v2/StandardCheckoutClient.java @@ -61,7 +61,7 @@ private StandardCheckoutClient( this.eventPublisher.send( BaseEvent.buildInitClientEvent( FlowType.PG_CHECKOUT, EventType.STANDARD_CHECKOUT_CLIENT_INITIALIZED)); - this.prepareHeaders(); + this.addClientSpecificHeaders(); } /** @@ -151,8 +151,7 @@ public StandardCheckoutPayResponse pay(StandardCheckoutPayRequest standardChecko standardCheckoutPayRequest, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildStandardCheckoutPayEvent( EventState.SUCCESS, @@ -204,8 +203,7 @@ public OrderStatusResponse getOrderStatus(String merchantOrderId, boolean detail Collections.singletonMap( StandardCheckoutConstants.ORDER_DETAILS, Boolean.toString(details)), - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildOrderStatusEvent( EventState.SUCCESS, @@ -243,8 +241,7 @@ public RefundResponse refund(RefundRequest refundRequest) { refundRequest, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildRefundEvent( EventState.SUCCESS, @@ -282,8 +279,7 @@ public CreateSdkOrderResponse createSdkOrder(CreateSdkOrderRequest createSdkOrde createSdkOrderRequest, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildCreateSdkOrderEvent( EventState.SUCCESS, @@ -322,8 +318,7 @@ public OrderStatusResponse getTransactionStatus(String transactionId) { null, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildTransactionStatusEvent( EventState.SUCCESS, @@ -362,8 +357,7 @@ public RefundStatusResponse getRefundStatus(String refundId) { null, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildRefundStatusEvent( EventState.SUCCESS, @@ -416,26 +410,11 @@ public CallbackResponse validateCallback( } /** Prepares the headers for StandardCheckout Client */ - private void prepareHeaders() { - this.headers = new ArrayList<>(); - headers.add( - HttpHeaderPair.builder().key(Headers.CONTENT_TYPE).value(APPLICATION_JSON).build()); - headers.add( - HttpHeaderPair.builder().key(Headers.SOURCE).value(Headers.INTEGRATION).build()); + private void addClientSpecificHeaders() { headers.add( HttpHeaderPair.builder() .key(Headers.SOURCE_VERSION) .value(Headers.API_VERSION) .build()); - headers.add( - HttpHeaderPair.builder() - .key(Headers.SOURCE_PLATFORM) - .value(Headers.SDK_TYPE) - .build()); - headers.add( - HttpHeaderPair.builder() - .key(Headers.SOURCE_PLATFORM_VERSION) - .value(Headers.SDK_VERSION) - .build()); } } diff --git a/src/main/java/com/phonepe/sdk/pg/subscription/v2/SubscriptionClient.java b/src/main/java/com/phonepe/sdk/pg/subscription/v2/SubscriptionClient.java index 2207932..ab4d4b0 100644 --- a/src/main/java/com/phonepe/sdk/pg/subscription/v2/SubscriptionClient.java +++ b/src/main/java/com/phonepe/sdk/pg/subscription/v2/SubscriptionClient.java @@ -59,7 +59,7 @@ private SubscriptionClient( this.eventPublisher.send( BaseEvent.buildInitClientEvent( FlowType.SUBSCRIPTION, EventType.SUBSCRIPTION_CLIENT_INITIALIZED)); - this.prepareHeaders(); + this.addClientSpecificHeaders(); } /** @@ -151,8 +151,7 @@ public PgPaymentResponse setup(PgPaymentRequest request) { request, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildSubscriptionSetupEvent( EventState.SUCCESS, request, url, EventType.SETUP_SUCCESS)); @@ -181,8 +180,7 @@ public PgPaymentResponse notify(PgPaymentRequest request) { request, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildSubscriptionNotifyEvent( EventState.SUCCESS, request, url, EventType.NOTIFY_SUCCESS)); @@ -212,8 +210,7 @@ public SubscriptionRedeemResponseV2 redeem(String merchantOrderId) { request, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildSubscriptionRedeemEvent( EventState.SUCCESS, merchantOrderId, url, EventType.REDEEM_SUCCESS)); @@ -249,8 +246,7 @@ public SubscriptionStatusResponseV2 getSubscriptionStatus(String merchantSubscri null, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildSubscriptionStatusEvent( EventState.SUCCESS, @@ -286,8 +282,7 @@ public OrderStatusResponse getOrderStatus(String merchantOrderId) { null, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildOrderStatusEvent( EventState.SUCCESS, @@ -356,8 +351,7 @@ public OrderStatusResponse getTransactionStatus(String transactionId) { null, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildTransactionStatusEvent( EventState.SUCCESS, @@ -395,8 +389,7 @@ public RefundResponse refund(RefundRequest refundRequest) { refundRequest, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildRefundEvent( EventState.SUCCESS, @@ -435,8 +428,7 @@ public RefundStatusResponse getRefundStatus(String refundId) { null, url, null, - new TypeReference() {}, - headers); + new TypeReference() {}); this.eventPublisher.send( BaseEvent.buildRefundStatusEvent( EventState.SUCCESS, @@ -488,26 +480,11 @@ public CallbackResponse validateCallback( } /** Prepares the headers for Subscription Client */ - private void prepareHeaders() { - this.headers = new ArrayList<>(); - headers.add( - HttpHeaderPair.builder().key(Headers.CONTENT_TYPE).value(APPLICATION_JSON).build()); - headers.add( - HttpHeaderPair.builder().key(Headers.SOURCE).value(Headers.INTEGRATION).build()); + private void addClientSpecificHeaders() { headers.add( HttpHeaderPair.builder() .key(Headers.SOURCE_VERSION) .value(Headers.SUBSCRIPTION_API_VERSION) .build()); - headers.add( - HttpHeaderPair.builder() - .key(Headers.SOURCE_PLATFORM) - .value(Headers.SDK_TYPE) - .build()); - headers.add( - HttpHeaderPair.builder() - .key(Headers.SOURCE_PLATFORM_VERSION) - .value(Headers.SDK_VERSION) - .build()); } }