Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 26 additions & 5 deletions src/main/java/com/phonepe/sdk/pg/common/BaseClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
import lombok.SneakyThrows;
import okhttp3.OkHttpClient;

import javax.validation.constraints.Max;

@Getter
public abstract class BaseClient {

Expand All @@ -47,6 +49,7 @@ public abstract class BaseClient {
protected EventPublisherFactory eventPublisherFactory;
protected EventPublisher eventPublisher;
private boolean shouldPublishEvents;
protected List<HttpHeaderPair> headers;

protected BaseClient(
String clientId,
Expand All @@ -56,6 +59,7 @@ protected BaseClient(
boolean shouldPublishEvents) {
this.okHttpClient = new OkHttpClient();
this.objectMapper = new ObjectMapper();
this.headers = new List<HttpHeaderPair>();
this.env = env;
this.credentialConfig =
CredentialConfig.builder()
Expand All @@ -76,6 +80,7 @@ protected BaseClient(
this.env,
this.eventPublisher);
this.eventPublisher.startPublishingEvents(tokenService::getAuthToken);
this.headers = prepareHeaders();
}

@SneakyThrows
Expand All @@ -93,7 +98,7 @@ protected <T, R> T requestViaAuthRefresh(
.objectMapper(this.objectMapper)
.responseTypeReference(responseTypeReference)
.methodName(methodName)
.headers(addAuthHeader(httpHeaders))
.headers(this.headers)
.requestData(requestData)
.hostURL(this.env.getPgHostUrl())
.encodingType(APPLICATION_JSON)
Expand All @@ -109,14 +114,30 @@ protected <T, R> T requestViaAuthRefresh(
}
}

@SneakyThrows
protected List<HttpHeaderPair> addAuthHeader(List<HttpHeaderPair> 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());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
public class CustomCheckoutClient extends BaseClient {

private static CustomCheckoutClient client;
private List<HttpHeaderPair> headers;

private CustomCheckoutClient(
final String clientId,
Expand All @@ -60,7 +59,7 @@ private CustomCheckoutClient(
this.eventPublisher.send(
BaseEvent.buildInitClientEvent(
FlowType.PG, EventType.CUSTOM_CHECKOUT_CLIENT_INITIALIZED));
this.prepareHeaders();
this.addClientSpecificHeaders();
}

/**
Expand Down Expand Up @@ -149,8 +148,7 @@ public PgPaymentResponse pay(PgPaymentRequest pgPaymentRequest) {
pgPaymentRequest,
url,
null,
new TypeReference<PgPaymentResponse>() {},
headers);
new TypeReference<PgPaymentResponse>() {});
this.eventPublisher.send(
BaseEvent.buildCustomCheckoutPayEvent(
EventState.SUCCESS, pgPaymentRequest, url, EventType.PAY_SUCCESS));
Expand Down Expand Up @@ -198,8 +196,7 @@ public OrderStatusResponse getOrderStatus(String merchantOrderId, boolean detail
Collections.singletonMap(
CustomCheckoutConstants.ORDER_DETAILS,
Boolean.toString(details)),
new TypeReference<OrderStatusResponse>() {},
headers);
new TypeReference<OrderStatusResponse>() {});
this.eventPublisher.send(
BaseEvent.buildOrderStatusEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -237,8 +234,7 @@ public RefundResponse refund(RefundRequest refundRequest) {
refundRequest,
url,
null,
new TypeReference<RefundResponse>() {},
headers);
new TypeReference<RefundResponse>() {});
this.eventPublisher.send(
BaseEvent.buildRefundEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -276,8 +272,7 @@ public CreateSdkOrderResponse createSdkOrder(CreateSdkOrderRequest createSdkOrde
createSdkOrderRequest,
url,
null,
new TypeReference<CreateSdkOrderResponse>() {},
headers);
new TypeReference<CreateSdkOrderResponse>() {});
this.eventPublisher.send(
BaseEvent.buildCreateSdkOrderEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -317,8 +312,7 @@ public OrderStatusResponse getTransactionStatus(String transactionId) {
null,
url,
null,
new TypeReference<OrderStatusResponse>() {},
headers);
new TypeReference<OrderStatusResponse>() {});
this.eventPublisher.send(
BaseEvent.buildTransactionStatusEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -357,8 +351,7 @@ public RefundStatusResponse getRefundStatus(String refundId) {
null,
url,
null,
new TypeReference<RefundStatusResponse>() {},
headers);
new TypeReference<RefundStatusResponse>() {});
this.eventPublisher.send(
BaseEvent.buildRefundStatusEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -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());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ private StandardCheckoutClient(
this.eventPublisher.send(
BaseEvent.buildInitClientEvent(
FlowType.PG_CHECKOUT, EventType.STANDARD_CHECKOUT_CLIENT_INITIALIZED));
this.prepareHeaders();
this.addClientSpecificHeaders();
}

/**
Expand Down Expand Up @@ -151,8 +151,7 @@ public StandardCheckoutPayResponse pay(StandardCheckoutPayRequest standardChecko
standardCheckoutPayRequest,
url,
null,
new TypeReference<StandardCheckoutPayResponse>() {},
headers);
new TypeReference<StandardCheckoutPayResponse>() {});
this.eventPublisher.send(
BaseEvent.buildStandardCheckoutPayEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -204,8 +203,7 @@ public OrderStatusResponse getOrderStatus(String merchantOrderId, boolean detail
Collections.singletonMap(
StandardCheckoutConstants.ORDER_DETAILS,
Boolean.toString(details)),
new TypeReference<OrderStatusResponse>() {},
headers);
new TypeReference<OrderStatusResponse>() {});
this.eventPublisher.send(
BaseEvent.buildOrderStatusEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -243,8 +241,7 @@ public RefundResponse refund(RefundRequest refundRequest) {
refundRequest,
url,
null,
new TypeReference<RefundResponse>() {},
headers);
new TypeReference<RefundResponse>() {});
this.eventPublisher.send(
BaseEvent.buildRefundEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -282,8 +279,7 @@ public CreateSdkOrderResponse createSdkOrder(CreateSdkOrderRequest createSdkOrde
createSdkOrderRequest,
url,
null,
new TypeReference<CreateSdkOrderResponse>() {},
headers);
new TypeReference<CreateSdkOrderResponse>() {});
this.eventPublisher.send(
BaseEvent.buildCreateSdkOrderEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -322,8 +318,7 @@ public OrderStatusResponse getTransactionStatus(String transactionId) {
null,
url,
null,
new TypeReference<OrderStatusResponse>() {},
headers);
new TypeReference<OrderStatusResponse>() {});
this.eventPublisher.send(
BaseEvent.buildTransactionStatusEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -362,8 +357,7 @@ public RefundStatusResponse getRefundStatus(String refundId) {
null,
url,
null,
new TypeReference<RefundStatusResponse>() {},
headers);
new TypeReference<RefundStatusResponse>() {});
this.eventPublisher.send(
BaseEvent.buildRefundStatusEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -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());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ private SubscriptionClient(
this.eventPublisher.send(
BaseEvent.buildInitClientEvent(
FlowType.SUBSCRIPTION, EventType.SUBSCRIPTION_CLIENT_INITIALIZED));
this.prepareHeaders();
this.addClientSpecificHeaders();
}

/**
Expand Down Expand Up @@ -151,8 +151,7 @@ public PgPaymentResponse setup(PgPaymentRequest request) {
request,
url,
null,
new TypeReference<PgPaymentResponse>() {},
headers);
new TypeReference<PgPaymentResponse>() {});
this.eventPublisher.send(
BaseEvent.buildSubscriptionSetupEvent(
EventState.SUCCESS, request, url, EventType.SETUP_SUCCESS));
Expand Down Expand Up @@ -181,8 +180,7 @@ public PgPaymentResponse notify(PgPaymentRequest request) {
request,
url,
null,
new TypeReference<PgPaymentResponse>() {},
headers);
new TypeReference<PgPaymentResponse>() {});
this.eventPublisher.send(
BaseEvent.buildSubscriptionNotifyEvent(
EventState.SUCCESS, request, url, EventType.NOTIFY_SUCCESS));
Expand Down Expand Up @@ -212,8 +210,7 @@ public SubscriptionRedeemResponseV2 redeem(String merchantOrderId) {
request,
url,
null,
new TypeReference<SubscriptionRedeemResponseV2>() {},
headers);
new TypeReference<SubscriptionRedeemResponseV2>() {});
this.eventPublisher.send(
BaseEvent.buildSubscriptionRedeemEvent(
EventState.SUCCESS, merchantOrderId, url, EventType.REDEEM_SUCCESS));
Expand Down Expand Up @@ -249,8 +246,7 @@ public SubscriptionStatusResponseV2 getSubscriptionStatus(String merchantSubscri
null,
url,
null,
new TypeReference<SubscriptionStatusResponseV2>() {},
headers);
new TypeReference<SubscriptionStatusResponseV2>() {});
this.eventPublisher.send(
BaseEvent.buildSubscriptionStatusEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -286,8 +282,7 @@ public OrderStatusResponse getOrderStatus(String merchantOrderId) {
null,
url,
null,
new TypeReference<OrderStatusResponse>() {},
headers);
new TypeReference<OrderStatusResponse>() {});
this.eventPublisher.send(
BaseEvent.buildOrderStatusEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -356,8 +351,7 @@ public OrderStatusResponse getTransactionStatus(String transactionId) {
null,
url,
null,
new TypeReference<OrderStatusResponse>() {},
headers);
new TypeReference<OrderStatusResponse>() {});
this.eventPublisher.send(
BaseEvent.buildTransactionStatusEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -395,8 +389,7 @@ public RefundResponse refund(RefundRequest refundRequest) {
refundRequest,
url,
null,
new TypeReference<RefundResponse>() {},
headers);
new TypeReference<RefundResponse>() {});
this.eventPublisher.send(
BaseEvent.buildRefundEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -435,8 +428,7 @@ public RefundStatusResponse getRefundStatus(String refundId) {
null,
url,
null,
new TypeReference<RefundStatusResponse>() {},
headers);
new TypeReference<RefundStatusResponse>() {});
this.eventPublisher.send(
BaseEvent.buildRefundStatusEvent(
EventState.SUCCESS,
Expand Down Expand Up @@ -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());
}
}