diff --git a/src/main/java/com/trustly/api/client/NotificationArgs.java b/src/main/java/com/trustly/api/client/NotificationArgs.java index 25e49e6..8f9b1ee 100644 --- a/src/main/java/com/trustly/api/client/NotificationArgs.java +++ b/src/main/java/com/trustly/api/client/NotificationArgs.java @@ -14,6 +14,13 @@ public class NotificationArgs { public interface NotificationOkHandler { void handle(String method, String uuid) throws IOException, TrustlyValidationException; + + } + + @FunctionalInterface + public interface NotificationOkStatusHandler { + + void handle(String method, String uuid, String status) throws IOException, TrustlyValidationException; } @FunctionalInterface @@ -31,11 +38,16 @@ public interface NotificationFailHandler { private final NotificationOkHandler onOK; private final NotificationFailHandler onFailed; + private final NotificationOkStatusHandler onOKStatus; public void respondWithOk() throws TrustlyValidationException, IOException { this.onOK.handle(this.method, this.uuid); } + public void respondWithOk(String status) throws TrustlyValidationException, IOException { + this.onOKStatus.handle(this.method, this.uuid, status); + } + public void respondWithFailed(String message) throws TrustlyValidationException, IOException { this.onFailed.handle(this.method, this.uuid, message); } diff --git a/src/main/java/com/trustly/api/client/TrustlyApiClient.java b/src/main/java/com/trustly/api/client/TrustlyApiClient.java index f49a34c..e4434a7 100644 --- a/src/main/java/com/trustly/api/client/TrustlyApiClient.java +++ b/src/main/java/com/trustly/api/client/TrustlyApiClient.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.trustly.api.client.NotificationArgs.NotificationFailHandler; import com.trustly.api.client.NotificationArgs.NotificationOkHandler; +import com.trustly.api.client.NotificationArgs.NotificationOkStatusHandler; import com.trustly.api.domain.base.IFromTrustlyRequestData; import com.trustly.api.domain.base.IRequestParamsData; import com.trustly.api.domain.base.IResponseResultData; @@ -694,6 +695,7 @@ private static void assertSuccessful(JsonRpcResp public void handleNotification( String jsonString, NotificationOkHandler onOK, + NotificationOkStatusHandler onOkStatus, NotificationFailHandler onFailed ) throws IOException, TrustlyNoNotificationListenerException, TrustlyValidationException, TrustlySignatureException { @@ -710,13 +712,14 @@ public void handleNotification( } } - this.handleNotification(jsonString, mapper, onOK, onFailed); + this.handleNotification(jsonString, mapper, onOK, onOkStatus, onFailed); } private void handleNotification( String jsonString, NotificationMeta meta, NotificationOkHandler onOK, + NotificationOkStatusHandler onOkStatus, NotificationFailHandler onFailed ) throws IOException, TrustlyValidationException, TrustlySignatureException { @@ -742,7 +745,7 @@ private void handleNotification( rpcRequest.getParams().getData(), rpcRequest.getMethod(), rpcRequest.getParams().getUuid(), - onOK, onFailed + onOK, onFailed, onOkStatus ); try { diff --git a/src/main/java/com/trustly/api/client/TrustlyApiClientExtensions.java b/src/main/java/com/trustly/api/client/TrustlyApiClientExtensions.java index f20abec..43e70cd 100644 --- a/src/main/java/com/trustly/api/client/TrustlyApiClientExtensions.java +++ b/src/main/java/com/trustly/api/client/TrustlyApiClientExtensions.java @@ -51,6 +51,10 @@ public static void handleNotificationRequest(InputStream incoming, NotificationR responseCount.incrementAndGet(); TrustlyApiClientExtensions.respond(client, responder, method, uuid, "OK", null, 200); }, + (method, uuid, status) -> { + responseCount.incrementAndGet(); + TrustlyApiClientExtensions.respond(client, responder, method, uuid, status, null, 200); + }, (method, uuid, message) -> { responseCount.incrementAndGet(); TrustlyApiClientExtensions.respond(client, responder, method, uuid, "FAILED", message, 500);