From 4c7a65816d62501f64f860a7a6f108b9834422c2 Mon Sep 17 00:00:00 2001 From: GME Date: Thu, 22 Nov 2018 17:47:16 +0100 Subject: [PATCH] Update database transaction api rest --- .../database/transaction/Transaction.java | 2 +- .../database/transaction/TransactionDao.java | 21 +++++++++++- .../DatabaseTransactionImplementation.java | 10 ++++++ .../DatabaseTransactionResource.java | 33 +++++++++++++++++++ .../restService/DatabaseUserResource.java | 8 ++--- 5 files changed, 68 insertions(+), 6 deletions(-) diff --git a/src/main/java/database/transaction/Transaction.java b/src/main/java/database/transaction/Transaction.java index bb9d94e..9a33ae5 100644 --- a/src/main/java/database/transaction/Transaction.java +++ b/src/main/java/database/transaction/Transaction.java @@ -42,7 +42,7 @@ public class Transaction { this.transactionFrom = transactionFrom; } - public String getDestAddress() { + public String getTransactionTo() { return transactionTo; } diff --git a/src/main/java/database/transaction/TransactionDao.java b/src/main/java/database/transaction/TransactionDao.java index 1120b9e..4077573 100644 --- a/src/main/java/database/transaction/TransactionDao.java +++ b/src/main/java/database/transaction/TransactionDao.java @@ -29,7 +29,8 @@ public class TransactionDao { public List getUserTransactions(String userHash)throws Exception{ transactionDao = createTransactionDaoConnection(); QueryBuilder queryBuilder = transactionDao.queryBuilder(); - queryBuilder.where().eq("transactionFrom",userHash); + queryBuilder.where().eq("transactionFrom",userHash).or().eq("transactionTo",userHash); + queryBuilder.orderBy("transactionDate",false); PreparedQuery preparedQuery = queryBuilder.prepare(); return transactionDao.query(preparedQuery); } @@ -52,5 +53,23 @@ public class TransactionDao { return transactionDao.queryForFirst(preparedQuery); } + public List getUserSentTransaction(String userHash)throws Exception{ + transactionDao = createTransactionDaoConnection(); + QueryBuilder queryBuilder = transactionDao.queryBuilder(); + queryBuilder.where().eq("transactionFrom",userHash); + queryBuilder.orderBy("transactionDate",false); + PreparedQuery preparedQuery = queryBuilder.prepare(); + return transactionDao.query(preparedQuery); + } + + public List getUserReceivedTransaction(String userHash)throws Exception{ + transactionDao = createTransactionDaoConnection(); + QueryBuilder queryBuilder = transactionDao.queryBuilder(); + queryBuilder.where().eq("transactionTo",userHash); + queryBuilder.orderBy("transactionDate",false); + PreparedQuery preparedQuery = queryBuilder.prepare(); + return transactionDao.query(preparedQuery); + } + } diff --git a/src/main/java/restImplementation/DatabaseTransactionImplementation.java b/src/main/java/restImplementation/DatabaseTransactionImplementation.java index a1fd367..9e73602 100644 --- a/src/main/java/restImplementation/DatabaseTransactionImplementation.java +++ b/src/main/java/restImplementation/DatabaseTransactionImplementation.java @@ -35,4 +35,14 @@ public class DatabaseTransactionImplementation { return transactionDao.getTenLastUserTransactions(userHash); } + public List getSentTransaction(String userHash)throws Exception{ + TransactionDao transactionDao = new TransactionDao(); + return transactionDao.getUserSentTransaction(userHash); + } + + public List getReceivedTransaction(String userHash)throws Exception{ + TransactionDao transactionDao = new TransactionDao(); + return transactionDao.getUserReceivedTransaction(userHash); + } + } diff --git a/src/main/java/restService/DatabaseTransactionResource.java b/src/main/java/restService/DatabaseTransactionResource.java index 8f5834f..a93a30f 100644 --- a/src/main/java/restService/DatabaseTransactionResource.java +++ b/src/main/java/restService/DatabaseTransactionResource.java @@ -74,4 +74,37 @@ public class DatabaseTransactionResource { } } + @RequestMapping(value = "/sent", method = RequestMethod.GET, params = {"userHash"}, produces = "application/json") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity> getSentTransactions(@RequestParam(value = "userHash") String userHash){ + try { + DatabaseTransactionImplementation databaseTransactionImplementation = new DatabaseTransactionImplementation(); + List transactionList = databaseTransactionImplementation.getSentTransaction(userHash); + if(!transactionList.isEmpty()){ + return ResponseEntity.status(HttpStatus.OK).body(transactionList); + }else { + return new ResponseEntity("Error", HttpStatus.NOT_FOUND); + } + }catch (Exception e){ + return new ResponseEntity(e.getMessage(), HttpStatus.BAD_REQUEST); + } + } + + @RequestMapping(value = "/received", method = RequestMethod.GET, params = {"userHash"}, produces = "application/json") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity> getReceivedTransactions(@RequestParam(value = "userHash") String userHash){ + try { + DatabaseTransactionImplementation databaseTransactionImplementation = new DatabaseTransactionImplementation(); + List transactionList = databaseTransactionImplementation.getReceivedTransaction(userHash); + if(!transactionList.isEmpty()){ + return ResponseEntity.status(HttpStatus.OK).body(transactionList); + }else { + return new ResponseEntity("Error", HttpStatus.NOT_FOUND); + } + }catch (Exception e){ + return new ResponseEntity(e.getMessage(), HttpStatus.BAD_REQUEST); + } + } + + } diff --git a/src/main/java/restService/DatabaseUserResource.java b/src/main/java/restService/DatabaseUserResource.java index a94072d..a9c935d 100644 --- a/src/main/java/restService/DatabaseUserResource.java +++ b/src/main/java/restService/DatabaseUserResource.java @@ -12,7 +12,7 @@ import javax.validation.Valid; @RequestMapping(value = "/api/rest/user") public class DatabaseUserResource { - @PostMapping("/save") + @PostMapping(value = "/save") @ResponseStatus(HttpStatus.CREATED) public ResponseEntity saveUser(@Valid @RequestBody User user){ try{ @@ -28,7 +28,7 @@ public class DatabaseUserResource { } } - @PostMapping("/login") + @PostMapping(value = "/login") @ResponseStatus(HttpStatus.OK) public ResponseEntity login(@Valid @RequestBody User user){ try{ @@ -46,7 +46,7 @@ public class DatabaseUserResource { } } - @PostMapping("/get") + @PostMapping(value = "/get") @ResponseBody public ResponseEntity getUser(@RequestBody User user){ try{ @@ -65,7 +65,7 @@ public class DatabaseUserResource { } } - @PostMapping("/update") + @PostMapping(value = "/update") @ResponseStatus(HttpStatus.OK) public ResponseEntity updateUser(@RequestBody User user){ return new ResponseEntity(null, HttpStatus.OK);