Skip to content

Commit b291918

Browse files
Add payment request activation method
1 parent f0f663b commit b291918

File tree

6 files changed

+146
-1
lines changed

6 files changed

+146
-1
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.ibanity.apis.client.products.ponto_connect.models;
2+
3+
import java.util.UUID;
4+
5+
import com.ibanity.apis.client.models.IbanityModel;
6+
7+
import lombok.*;
8+
9+
@Data
10+
@Builder
11+
@NoArgsConstructor
12+
@AllArgsConstructor(access = AccessLevel.PRIVATE)
13+
public class PaymentRequestActivationRequest implements IbanityModel {
14+
15+
public static final String RESOURCE_TYPE = "paymentRequestActivationRequest";
16+
public static final String API_URL_TAG_ID = "{" + RESOURCE_TYPE + URL_PARAMETER_ID_POSTFIX + "}";
17+
18+
private UUID id;
19+
private String selfLink;
20+
private String requestId;
21+
22+
private String redirectLink;
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.ibanity.apis.client.products.ponto_connect.models.create;
2+
3+
import lombok.Builder;
4+
import lombok.EqualsAndHashCode;
5+
import lombok.Getter;
6+
import lombok.ToString;
7+
8+
import java.util.Map;
9+
10+
import static java.util.Collections.emptyMap;
11+
12+
@Getter
13+
@Builder
14+
@ToString
15+
@EqualsAndHashCode
16+
public class PaymentRequestActivationRequestCreateQuery {
17+
18+
private String accessToken;
19+
private String redirectUri;
20+
21+
@Builder.Default
22+
private Map<String, String> additionalHeaders = emptyMap();
23+
24+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.ibanity.apis.client.products.ponto_connect.services;
2+
3+
import com.ibanity.apis.client.products.ponto_connect.models.PaymentRequestActivationRequest;
4+
import com.ibanity.apis.client.products.ponto_connect.models.create.PaymentRequestActivationRequestCreateQuery;
5+
6+
public interface PaymentRequestActivationRequestService {
7+
8+
PaymentRequestActivationRequest create(PaymentRequestActivationRequestCreateQuery paymentRequestActivationRequestCreateQuery);
9+
10+
}

src/main/java/com/ibanity/apis/client/products/ponto_connect/services/PontoConnectService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ public interface PontoConnectService {
3434

3535
PaymentActivationRequestService paymentActivationRequestService();
3636

37+
PaymentRequestActivationRequestService paymentRequestActivationRequestService();
38+
3739
IntegrationAccountService integrationAccountService();
3840

3941
PaymentRequestService paymentRequestService();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package com.ibanity.apis.client.products.ponto_connect.services.impl;
2+
3+
import static com.ibanity.apis.client.mappers.IbanityModelMapper.toIbanityModel;
4+
import static com.ibanity.apis.client.mappers.IbanityModelMapper.mapResource;
5+
import static com.ibanity.apis.client.mappers.ModelMapperHelper.buildRequest;
6+
import static com.ibanity.apis.client.models.IbanityProduct.PontoConnect;
7+
import static com.ibanity.apis.client.utils.URIHelper.buildUri;
8+
9+
import java.net.URI;
10+
import java.util.function.Function;
11+
12+
import org.apache.commons.lang3.StringUtils;
13+
import org.apache.http.HttpResponse;
14+
15+
import com.ibanity.apis.client.http.IbanityHttpClient;
16+
import com.ibanity.apis.client.jsonapi.DataApiModel;
17+
import com.ibanity.apis.client.jsonapi.RequestApiModel;
18+
import com.ibanity.apis.client.products.ponto_connect.models.create.PaymentRequestActivationRequestCreateQuery;
19+
import com.ibanity.apis.client.products.ponto_connect.services.PaymentRequestActivationRequestService;
20+
import com.ibanity.apis.client.services.ApiUrlProvider;
21+
22+
import lombok.AccessLevel;
23+
import lombok.AllArgsConstructor;
24+
import lombok.Builder;
25+
import lombok.Data;
26+
import lombok.NoArgsConstructor;
27+
28+
public class PaymentRequestActivationRequestServiceImpl implements PaymentRequestActivationRequestService {
29+
30+
private final ApiUrlProvider apiUrlProvider;
31+
private final IbanityHttpClient ibanityHttpClient;
32+
33+
public PaymentRequestActivationRequestServiceImpl(ApiUrlProvider apiUrlProvider, IbanityHttpClient ibanityHttpClient) {
34+
this.apiUrlProvider = apiUrlProvider;
35+
this.ibanityHttpClient = ibanityHttpClient;
36+
}
37+
38+
@Override
39+
public com.ibanity.apis.client.products.ponto_connect.models.PaymentRequestActivationRequest create(PaymentRequestActivationRequestCreateQuery paymentRequestActivationRequestCreateQuery) {
40+
URI uri = buildUri(getUrl());
41+
42+
RequestApiModel requestApiModel = buildRequest(PaymentRequestActivationRequest.RESOURCE_TYPE, toRequest(paymentRequestActivationRequestCreateQuery));
43+
HttpResponse response = ibanityHttpClient.post(uri, requestApiModel, paymentRequestActivationRequestCreateQuery.getAdditionalHeaders(), paymentRequestActivationRequestCreateQuery.getAccessToken());
44+
45+
return mapResource(response, customMapping());
46+
}
47+
48+
private PaymentRequestActivationRequest toRequest(PaymentRequestActivationRequestCreateQuery paymentRequestActivationRequestCreateQuery) {
49+
return PaymentRequestActivationRequest.builder()
50+
.redirectUri(paymentRequestActivationRequestCreateQuery.getRedirectUri())
51+
.build();
52+
}
53+
54+
private Function<DataApiModel, com.ibanity.apis.client.products.ponto_connect.models.PaymentRequestActivationRequest> customMapping() {
55+
return dataApiModel -> {
56+
com.ibanity.apis.client.products.ponto_connect.models.PaymentRequestActivationRequest paymentRequestActivationRequest = toIbanityModel(dataApiModel, com.ibanity.apis.client.products.ponto_connect.models.PaymentRequestActivationRequest.class);
57+
paymentRequestActivationRequest.setRedirectLink(dataApiModel.getLinks().getRedirect());
58+
59+
return paymentRequestActivationRequest;
60+
};
61+
}
62+
63+
private String getUrl() {
64+
return StringUtils.removeEnd(apiUrlProvider.find(PontoConnect, "paymentRequestActivationRequests"), "/");
65+
}
66+
67+
@Data
68+
@Builder
69+
@NoArgsConstructor
70+
@AllArgsConstructor(access = AccessLevel.PRIVATE)
71+
private static class PaymentRequestActivationRequest {
72+
public static final String RESOURCE_TYPE = "paymentRequestActivationRequest";
73+
74+
private String redirectUri;
75+
}
76+
77+
}

src/main/java/com/ibanity/apis/client/products/ponto_connect/services/impl/PontoConnectServiceImpl.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class PontoConnectServiceImpl implements PontoConnectService {
2424
private final BulkPaymentService bulkPaymentService;
2525
private final ReauthorizationRequestService reauthorizationRequestService;
2626
private final PaymentActivationRequestService paymentActivationRequestService;
27+
private final PaymentRequestActivationRequestService paymentRequestActivationRequestService;
2728
private final IntegrationAccountService integrationAccountService;
2829
private final PaymentRequestService paymentRequestService;
2930

@@ -43,6 +44,7 @@ public PontoConnectServiceImpl(ApiUrlProvider apiUrlProvider, IbanityHttpClient
4344
bulkPaymentService = new BulkPaymentServiceImpl(apiUrlProvider, ibanityHttpClient);
4445
reauthorizationRequestService = new ReauthorizationRequestServiceImpl(apiUrlProvider, ibanityHttpClient);
4546
paymentActivationRequestService = new PaymentActivationRequestServiceImpl(apiUrlProvider, ibanityHttpClient);
47+
paymentRequestActivationRequestService = new PaymentRequestActivationRequestServiceImpl(apiUrlProvider, ibanityHttpClient);
4648
integrationAccountService = new IntegrationAccountServiceImpl(apiUrlProvider, ibanityHttpClient);
4749
paymentRequestService = new PaymentRequestServiceImpl(apiUrlProvider, ibanityHttpClient);
4850
}
@@ -118,7 +120,14 @@ public ReauthorizationRequestService reauthorizationRequestService() {
118120
}
119121

120122
@Override
121-
public PaymentActivationRequestService paymentActivationRequestService() { return paymentActivationRequestService;}
123+
public PaymentActivationRequestService paymentActivationRequestService() {
124+
return paymentActivationRequestService;
125+
}
126+
127+
@Override
128+
public PaymentRequestActivationRequestService paymentRequestActivationRequestService() {
129+
return paymentRequestActivationRequestService;
130+
}
122131

123132
@Override
124133
public IntegrationAccountService integrationAccountService() {

0 commit comments

Comments
 (0)