mirror of
https://github.com/jlengrand/dialogflow-fun.git
synced 2026-03-10 08:11:22 +00:00
Add support for balance checking
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package fr.lengrand.dialogflowfunapi;
|
||||
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.auth.Auth;
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.balance.BalanceHandler;
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.balance.data.Balance;
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.transactions.TransactionsHandler;
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.transactions.data.Transactions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -22,6 +24,9 @@ public class DialogflowFunApiApplication {
|
||||
@Autowired
|
||||
private TransactionsHandler transactionsHandler;
|
||||
|
||||
@Autowired
|
||||
private BalanceHandler balanceHandler;
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(DialogflowFunApiApplication.class, args);
|
||||
}
|
||||
@@ -40,6 +45,8 @@ public class DialogflowFunApiApplication {
|
||||
return "hello world!";
|
||||
}
|
||||
|
||||
// TODO : Take inputs from requests
|
||||
|
||||
@GetMapping("/auth")
|
||||
public String auth() throws IOException, InterruptedException {
|
||||
auth.authenticate(); // TODO: Should be done on start!
|
||||
@@ -51,4 +58,8 @@ public class DialogflowFunApiApplication {
|
||||
return transactionsHandler.getTransactions();
|
||||
}
|
||||
|
||||
@GetMapping("/balances")
|
||||
public Balance balances() throws IOException, InterruptedException {
|
||||
return balanceHandler.getBalance();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package fr.lengrand.dialogflowfunapi.openbankproject.balance;
|
||||
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.auth.Auth;
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.auth.JSONBodyHandler;
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.balance.data.Balance;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.net.http.HttpClient;
|
||||
import java.net.http.HttpRequest;
|
||||
import java.net.http.HttpResponse;
|
||||
|
||||
@Service
|
||||
public class BalanceHandler {
|
||||
|
||||
@Autowired
|
||||
private Auth auth;
|
||||
|
||||
public JSONBodyHandler<Balance> jsonBodyHandler = JSONBodyHandler.getHandler(Balance.class);
|
||||
|
||||
public Balance getBalance() throws IOException, InterruptedException {
|
||||
HttpClient client = HttpClient.newHttpClient();
|
||||
HttpRequest request = HttpRequest.newBuilder()
|
||||
.headers("Content-Type", "application/json",
|
||||
"Authorization", createAuthHeader())
|
||||
.uri(URI.create(createUrl("at02-1465--01"))) // TODO : Convert to DialogFlow names
|
||||
.build();
|
||||
|
||||
HttpResponse<Balance> response = client.send(request, jsonBodyHandler); //TODO : Handle failures.
|
||||
return response.body();
|
||||
}
|
||||
|
||||
private String createUrl(String bank){
|
||||
return "https://psd2-api.openbankproject.com/obp/v4.0.0/banks/" + bank + "/balances";
|
||||
}
|
||||
|
||||
private String createAuthHeader(){
|
||||
return "DirectLogin token=" + this.auth.getToken().get();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package fr.lengrand.dialogflowfunapi.openbankproject.balance.data;
|
||||
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.transactions.data.Amount;
|
||||
|
||||
public class Account {
|
||||
|
||||
public String id;
|
||||
public String bank_id;
|
||||
public Amount balance;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package fr.lengrand.dialogflowfunapi.openbankproject.balance.data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class Balance {
|
||||
|
||||
public List<Account> accounts;
|
||||
}
|
||||
@@ -2,10 +2,8 @@ package fr.lengrand.dialogflowfunapi.openbankproject.transactions;
|
||||
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.auth.Auth;
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.auth.JSONBodyHandler;
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.auth.data.AuthToken;
|
||||
import fr.lengrand.dialogflowfunapi.openbankproject.transactions.data.Transactions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
Reference in New Issue
Block a user