Skip to content

Commit

Permalink
[PHEE-496] phee-488 add callback url option in ml connector for looku…
Browse files Browse the repository at this point in the history
…p, quotation and transfer (#15)

* with info logs, update configs

* zeebe cluster

* server-port fix

* add callback option in header for lookup and quotation

* add callback option in header for transfer

* code cleanup
  • Loading branch information
Anover000 authored Dec 4, 2023
1 parent 6b72e07 commit 5feab23
Show file tree
Hide file tree
Showing 8 changed files with 50 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ public class PartyLookupRoutes extends ErrorHandlerRouteBuilder {
@Value("${mojaloop.perf-resp-delay}")
private int mojaPerfRespDelay;

@Value("${switch.als-host}")
private String alsHost;

@Autowired
private Processor pojoToString;

Expand Down Expand Up @@ -94,6 +97,12 @@ public void configure() {
variables.put(PARTY_ID_TYPE, e.getIn().getHeader(PARTY_ID_TYPE));
variables.put(PARTY_ID, e.getIn().getHeader(PARTY_ID));
variables.put(TENANT_ID, tenantId);
if(e.getIn().getHeader("X-Lookup-Callback-Url")!=null) {
variables.put("X-Lookup-Callback-Url", e.getIn().getHeader("X-Lookup-Callback-Url"));
}
else {
variables.put("X-Lookup-Callback-Url", alsHost);
}
});
}
)
Expand Down Expand Up @@ -154,7 +163,6 @@ public void configure() {
.process(pojoToString)
.log(LoggingLevel.DEBUG, "Party response from payee: ${body}")
.setHeader(Exchange.HTTP_METHOD, constant("PUT"))
.setProperty(HOST, simple("{{switch.als-host}}"))
.setProperty(ENDPOINT, simple("/parties/${exchangeProperty." + PARTY_ID_TYPE + "}/${exchangeProperty." + PARTY_ID + "}"))
.to("direct:external-api-call");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,12 +126,14 @@ public void setupWorkers() {

Exchange exchange = new DefaultExchange(camelContext);
Object errorInformation = existingVariables.get(ERROR_INFORMATION);

zeebeVariablesToCamelHeaders(existingVariables, exchange,
FSPIOP_SOURCE.headerName(),
HEADER_TRACEPARENT,
HEADER_DATE
);

if (errorInformation != null) {
zeebeVariablesToCamelHeaders(existingVariables, exchange,
FSPIOP_SOURCE.headerName(),
HEADER_TRACEPARENT,
HEADER_DATE
);

exchange.setProperty(ERROR_INFORMATION, errorInformation);
exchange.setProperty(PARTY_ID_TYPE, existingVariables.get(PARTY_ID_TYPE));
Expand All @@ -141,13 +143,9 @@ public void setupWorkers() {
logger.debug("Zeebe variables: {}", existingVariables);
producerTemplate.send("direct:send-parties-error-response", exchange);
} else {
zeebeVariablesToCamelHeaders(existingVariables, exchange,
FSPIOP_SOURCE.headerName(),
HEADER_TRACEPARENT,
HEADER_DATE
);

exchange.setProperty(PAYEE_PARTY_RESPONSE, existingVariables.get(PAYEE_PARTY_RESPONSE));
exchange.setProperty(HOST, existingVariables.get("X-Lookup-Callback-Url"));

producerTemplate.send("direct:send-parties-response", exchange);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ public class QuoteRoutes extends ErrorHandlerRouteBuilder {
@Value("${bpmn.flows.quote}")
private String quoteFlow;

@Value("${switch.quotes-host}")
private String quoteHost;

@Autowired
private IlpBuilder ilpBuilder;

Expand Down Expand Up @@ -120,6 +123,12 @@ public void configure() {
variables.put(QUOTE_SWITCH_REQUEST, exchange.getProperty(QUOTE_SWITCH_REQUEST));
variables.put(QUOTE_SWITCH_REQUEST_AMOUNT, request.getAmount());
variables.put(TENANT_ID, tenantId);
if(exchange.getIn().getHeader("X-Quote-Callback-Url")!=null) {
variables.put("X-Quote-Callback-Url", exchange.getIn().getHeader("X-Quote-Callback-Url"));
}
else {
variables.put("X-Quote-Callback-Url", quoteHost);
}

ZeebeProcessStarter.camelHeadersToZeebeVariables(exchange, variables,
HEADER_DATE,
Expand Down Expand Up @@ -236,7 +245,6 @@ public void configure() {
.process(pojoToString)
.log(LoggingLevel.DEBUG, "Quote response from payee: ${body}")
.setHeader(Exchange.HTTP_METHOD, constant("PUT"))
.setProperty(HOST, simple("{{switch.quotes-host}}"))
.setProperty(ENDPOINT, simple("/quotes/${exchangeProperty." + QUOTE_ID + "}"))
.to("direct:external-api-call");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import static org.mifos.connector.common.mojaloop.type.MojaloopHeaders.FSPIOP_SOURCE;
import static org.mifos.connector.mojaloop.camel.config.CamelProperties.HEADER_DATE;
import static org.mifos.connector.mojaloop.camel.config.CamelProperties.HEADER_TRACEPARENT;
import static org.mifos.connector.mojaloop.camel.config.CamelProperties.HOST;
import static org.mifos.connector.mojaloop.zeebe.ZeebeVariables.CHANNEL_REQUEST;
import static org.mifos.connector.mojaloop.zeebe.ZeebeVariables.ERROR_INFORMATION;
import static org.mifos.connector.mojaloop.zeebe.ZeebeVariables.LOCAL_QUOTE_RESPONSE;
Expand Down Expand Up @@ -144,6 +145,7 @@ public void setupWorkers() {
HEADER_TRACEPARENT,
LOCAL_QUOTE_RESPONSE
);
exchange.setProperty(HOST, existingVariables.get("X-Quote-Callback-Url"));

producerTemplate.send("direct:send-quote-to-switch", exchange);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ public class TransferRoutes extends ErrorHandlerRouteBuilder {
@Value("${mojaloop.perf-resp-delay}")
private int mojaPerfRespDelay;

@Value("${switch.transfers-host}")
private String transferHost;

@Autowired
private IlpBuilder ilpBuilder;

Expand Down Expand Up @@ -93,6 +96,12 @@ public void configure() {
variables.put(FSPIOP_DESTINATION.headerName(), request.getPayerFsp());
variables.put(HEADER_DATE, exchange.getIn().getHeader(HEADER_DATE));
variables.put(HEADER_TRACEPARENT, exchange.getIn().getHeader(HEADER_TRACEPARENT));
if(exchange.getIn().getHeader("X-Transfer-Callback-Url")!=null) {
variables.put("X-Transfer-Callback-Url", exchange.getIn().getHeader("X-Transfer-Callback-Url"));
}
else {
variables.put("X-Transfer-Callback-Url", transferHost);
}

zeebeClient.newPublishMessageCommand()
.messageName(TRANSFER_MESSAGE)
Expand Down Expand Up @@ -172,7 +181,6 @@ public void configure() {
.process(pojoToString)
.log(LoggingLevel.DEBUG, "Transfer response from payee: ${body}")
.setHeader(Exchange.HTTP_METHOD, constant("PUT"))
.setProperty(HOST, simple("{{switch.transfers-host}}"))
.setProperty(ENDPOINT, simple("transfers/${exchangeProperty." + TRANSACTION_ID + "}"))
.to("direct:external-api-call");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ public void setupWorkers() {
);

exchange.setProperty(TRANSACTION_ID, existingVariables.get(TRANSACTION_ID));
exchange.setProperty(HOST, existingVariables.get("X-Transfer-Callback-Url"));
producerTemplate.send("direct:send-transfer-to-switch", exchange);
}
client.newCompleteCommand(job.getKey())
Expand Down
12 changes: 6 additions & 6 deletions src/main/resources/application-bb.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
parties:
- tenantId: tn03
fspId: in02tn03
domain: in02tn03.mifos.io
- tenantId: tn04
fspId: in02tn04
domain: in02tn04.mifos.io
- tenantId: gorilla
fspId: payerfsp
domain: ""
- tenantId: lion
fspId: payeefsp
domain: ""
12 changes: 6 additions & 6 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,18 @@ mojaloop:
perf-resp-delay: 100

switch:
quotes-host: http://40.114.81.46
quotes-host: ""
quote-service: quoting-service.local
als-host: http://40.114.81.46
als-host: ""
account-lookup-service: account-lookup-service.local
transfers-host: http://40.114.81.46
transfers-host: ""
transfer-service: ml-api-adapter.local
transactions-host: http://40.114.81.46
transactions-host: ""
transaction-request-service: transaction-request-service.local
oracle-host: http://account-oracle.mifos.io:4100
oracle-host: ""

dfspids: "DFSPID"

logging:
level:
root: ERROR
root: ERROR

0 comments on commit 5feab23

Please sign in to comment.