-
Notifications
You must be signed in to change notification settings - Fork 131
/
BankingWebhookHandler.java
65 lines (53 loc) · 2.67 KB
/
BankingWebhookHandler.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.adyen.notification;
import com.adyen.model.acswebhooks.AuthenticationNotificationRequest;
import com.adyen.model.configurationwebhooks.AccountHolderNotificationRequest;
import com.adyen.model.configurationwebhooks.BalanceAccountNotificationRequest;
import com.adyen.model.configurationwebhooks.CardOrderNotificationRequest;
import com.adyen.model.configurationwebhooks.PaymentNotificationRequest;
import com.adyen.model.configurationwebhooks.SweepConfigurationNotificationRequest;
import com.adyen.model.reportwebhooks.ReportNotificationRequest;
import com.adyen.model.transferwebhooks.JSON;
import com.adyen.model.transferwebhooks.TransferNotificationRequest;
import com.adyen.model.transactionwebhooks.TransactionNotificationRequestV4;
import java.util.Optional;
public class BankingWebhookHandler {
private final String payload;
public BankingWebhookHandler(String payload) {
this.payload = payload;
}
public Optional<AuthenticationNotificationRequest> getAuthenticationNotificationRequest() {
return getOptionalField(AuthenticationNotificationRequest.class);
}
public Optional<AccountHolderNotificationRequest> getAccountHolderNotificationRequest() {
return getOptionalField(AccountHolderNotificationRequest.class);
}
public Optional<BalanceAccountNotificationRequest> getBalanceAccountNotificationRequest() {
return getOptionalField(BalanceAccountNotificationRequest.class);
}
public Optional<CardOrderNotificationRequest> getCardOrderNotificationRequest() {
return getOptionalField(CardOrderNotificationRequest.class);
}
public Optional<PaymentNotificationRequest> getPaymentNotificationRequest() {
return getOptionalField(PaymentNotificationRequest.class);
}
public Optional<SweepConfigurationNotificationRequest> getSweepConfigurationNotificationRequest() {
return getOptionalField(SweepConfigurationNotificationRequest.class);
}
public Optional<ReportNotificationRequest> getReportNotificationRequest() {
return getOptionalField(ReportNotificationRequest.class);
}
public Optional<TransferNotificationRequest> getTransferNotificationRequest() {
return getOptionalField(TransferNotificationRequest.class);
}
public Optional<TransactionNotificationRequestV4> getTransactionNotificationRequest() {
return getOptionalField(TransactionNotificationRequestV4.class);
}
private <T> Optional<T> getOptionalField(Class<T> clazz) {
try {
T val = JSON.getMapper().readValue(payload, clazz);
return Optional.ofNullable(val);
} catch (Exception e) {
return Optional.empty();
}
}
}