Skip to content

Commit 1164a81

Browse files
Ugo Lambertdamienbr
authored andcommitted
Add webhook for pending transactions
1 parent 4a9e7da commit 1164a81

File tree

3 files changed

+118
-0
lines changed

3 files changed

+118
-0
lines changed

src/main/java/com/ibanity/apis/client/utils/WebhooksUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ private static IbanityWebhookEvent parsePontoConnectEvent(String payload, String
9494
return mapWebhookResource(payload, com.ibanity.apis.client.webhooks.models.ponto_connect.AccountTransactionsCreated.mappingFunction());
9595
case com.ibanity.apis.client.webhooks.models.ponto_connect.AccountTransactionsUpdated.TYPE:
9696
return mapWebhookResource(payload, com.ibanity.apis.client.webhooks.models.ponto_connect.AccountTransactionsUpdated.mappingFunction());
97+
case com.ibanity.apis.client.webhooks.models.ponto_connect.AccountPendingTransactionsCreated.TYPE:
98+
return mapWebhookResource(payload, com.ibanity.apis.client.webhooks.models.ponto_connect.AccountPendingTransactionsCreated.mappingFunction());
99+
case com.ibanity.apis.client.webhooks.models.ponto_connect.AccountPendingTransactionsUpdated.TYPE:
100+
return mapWebhookResource(payload, com.ibanity.apis.client.webhooks.models.ponto_connect.AccountPendingTransactionsUpdated.mappingFunction());
97101
case com.ibanity.apis.client.webhooks.models.ponto_connect.SynchronizationFailed.TYPE:
98102
return mapWebhookResource(payload, com.ibanity.apis.client.webhooks.models.ponto_connect.SynchronizationFailed.mappingFunction());
99103
case com.ibanity.apis.client.webhooks.models.ponto_connect.SynchronizationSucceededWithoutChange.TYPE:
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package com.ibanity.apis.client.webhooks.models.ponto_connect;
2+
3+
import com.ibanity.apis.client.jsonapi.DataApiModel;
4+
import com.ibanity.apis.client.jsonapi.RelationshipsApiModel;
5+
import com.ibanity.apis.client.models.IbanityWebhookEvent;
6+
import lombok.AccessLevel;
7+
import lombok.AllArgsConstructor;
8+
import lombok.Data;
9+
import lombok.NoArgsConstructor;
10+
import lombok.experimental.SuperBuilder;
11+
12+
import java.time.Instant;
13+
import java.util.UUID;
14+
import java.util.function.Function;
15+
16+
import static com.ibanity.apis.client.mappers.IbanityWebhookEventMapper.toIbanityWebhooks;
17+
import static java.util.UUID.fromString;
18+
19+
@Data
20+
@SuperBuilder(toBuilder = true)
21+
@NoArgsConstructor
22+
@AllArgsConstructor(access = AccessLevel.PRIVATE)
23+
public class AccountPendingTransactionsCreated implements IbanityWebhookEvent {
24+
25+
public final static String TYPE = "pontoConnect.account.pendingTransactionsCreated";
26+
27+
private UUID id;
28+
private String type;
29+
private UUID accountId;
30+
private int count;
31+
private UUID synchronizationId;
32+
private UUID organizationId;
33+
private Instant createdAt;
34+
35+
public static Function<DataApiModel, AccountPendingTransactionsCreated> mappingFunction() {
36+
return dataApiModel -> {
37+
AccountPendingTransactionsCreated accountPendingTransactionsCreated = toIbanityWebhooks(dataApiModel, AccountPendingTransactionsCreated.class);
38+
39+
RelationshipsApiModel accountRelationship = dataApiModel.getRelationships().get("account");
40+
if (accountRelationship != null) {
41+
accountPendingTransactionsCreated.setAccountId(fromString(accountRelationship.getData().getId()));
42+
}
43+
44+
RelationshipsApiModel synchronizationRelationship = dataApiModel.getRelationships().get("synchronization");
45+
if (synchronizationRelationship != null) {
46+
accountPendingTransactionsCreated.setSynchronizationId(fromString(synchronizationRelationship.getData().getId()));
47+
}
48+
49+
RelationshipsApiModel organizationRelationship = dataApiModel.getRelationships().get("organization");
50+
if (organizationRelationship != null) {
51+
accountPendingTransactionsCreated.setOrganizationId(fromString(organizationRelationship.getData().getId()));
52+
}
53+
54+
return accountPendingTransactionsCreated;
55+
};
56+
}
57+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package com.ibanity.apis.client.webhooks.models.ponto_connect;
2+
3+
import com.ibanity.apis.client.jsonapi.DataApiModel;
4+
import com.ibanity.apis.client.jsonapi.RelationshipsApiModel;
5+
import com.ibanity.apis.client.models.IbanityWebhookEvent;
6+
import lombok.AccessLevel;
7+
import lombok.AllArgsConstructor;
8+
import lombok.Data;
9+
import lombok.NoArgsConstructor;
10+
import lombok.experimental.SuperBuilder;
11+
12+
import java.time.Instant;
13+
import java.util.UUID;
14+
import java.util.function.Function;
15+
16+
import static com.ibanity.apis.client.mappers.IbanityWebhookEventMapper.toIbanityWebhooks;
17+
import static java.util.UUID.fromString;
18+
19+
@Data
20+
@SuperBuilder(toBuilder = true)
21+
@NoArgsConstructor
22+
@AllArgsConstructor(access = AccessLevel.PRIVATE)
23+
public class AccountPendingTransactionsUpdated implements IbanityWebhookEvent {
24+
25+
public final static String TYPE = "pontoConnect.account.pendingTransactionsUpdated";
26+
27+
private UUID id;
28+
private String type;
29+
private UUID accountId;
30+
private UUID synchronizationId;
31+
private UUID organizationId;
32+
private int count;
33+
private Instant createdAt;
34+
35+
public static Function<DataApiModel, AccountPendingTransactionsUpdated> mappingFunction() {
36+
return dataApiModel -> {
37+
AccountPendingTransactionsUpdated accountPendingTransactionsUpdated = toIbanityWebhooks(dataApiModel, AccountPendingTransactionsUpdated.class);
38+
39+
RelationshipsApiModel accountRelationship = dataApiModel.getRelationships().get("account");
40+
if (accountRelationship != null) {
41+
accountPendingTransactionsUpdated.setAccountId(fromString(accountRelationship.getData().getId()));
42+
}
43+
44+
RelationshipsApiModel synchronizationRelationship = dataApiModel.getRelationships().get("synchronization");
45+
if (synchronizationRelationship != null) {
46+
accountPendingTransactionsUpdated.setSynchronizationId(fromString(synchronizationRelationship.getData().getId()));
47+
}
48+
49+
RelationshipsApiModel organizationRelationship = dataApiModel.getRelationships().get("organization");
50+
if (organizationRelationship != null) {
51+
accountPendingTransactionsUpdated.setOrganizationId(fromString(organizationRelationship.getData().getId()));
52+
}
53+
54+
return accountPendingTransactionsUpdated;
55+
};
56+
}
57+
}

0 commit comments

Comments
 (0)