From 618fa237d0e6705bfc5d8c8ac8c101245965b178 Mon Sep 17 00:00:00 2001 From: GME Date: Wed, 21 Nov 2018 20:19:43 +0100 Subject: [PATCH] Transaction api rest Added basic method for api rest transactions --- .../DatabaseTransactionImplementation.java | 38 +++++++++++++ .../DatabaseUserImplementation.java | 2 - .../DatabaseTransactionResource.java | 56 +++++++++++++++++++ .../restService/DatabaseUserResource.java | 2 +- 4 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 src/main/java/restImplementation/DatabaseTransactionImplementation.java diff --git a/src/main/java/restImplementation/DatabaseTransactionImplementation.java b/src/main/java/restImplementation/DatabaseTransactionImplementation.java new file mode 100644 index 0000000..556ccbc --- /dev/null +++ b/src/main/java/restImplementation/DatabaseTransactionImplementation.java @@ -0,0 +1,38 @@ +package restImplementation; + +import database.transaction.Transaction; +import database.transaction.TransactionDao; + +import java.time.Instant; +import java.util.List; + +public class DatabaseTransactionImplementation { + + public void saveTransaction(Transaction transaction) throws Exception{ + TransactionDao transactionDao = new TransactionDao(); + long now = Instant.now().toEpochMilli(); + transaction.setTransactionDate(now); + transactionDao.addTransaction(transaction); + } + + public Transaction getUserTransaction(int userId, String transactionHash)throws Exception{ + TransactionDao transactionDao = new TransactionDao(); + Transaction tx = transactionDao.getTransaction(userId,transactionHash); + if(tx != null){ + return tx; + }else { + return null; + } + } + + public List getAllUserTransactions(int userId)throws Exception{ + TransactionDao transactionDao = new TransactionDao(); + return transactionDao.getUserTransactions(userId); + } + + public List getLastTenTransactions(int userId)throws Exception{ + TransactionDao transactionDao = new TransactionDao(); + return transactionDao.getTenLastUserTransactions(userId); + } + +} diff --git a/src/main/java/restImplementation/DatabaseUserImplementation.java b/src/main/java/restImplementation/DatabaseUserImplementation.java index f62bc46..bdfa3ed 100644 --- a/src/main/java/restImplementation/DatabaseUserImplementation.java +++ b/src/main/java/restImplementation/DatabaseUserImplementation.java @@ -38,11 +38,9 @@ public class DatabaseUserImplementation { if(BCrypt.checkpw(password, hash)){ return user1; }else{ - System.out.println("Bcrypt nope"); return null; } }else { - System.out.println("nope"); return null; } } diff --git a/src/main/java/restService/DatabaseTransactionResource.java b/src/main/java/restService/DatabaseTransactionResource.java index 00bfa98..488a710 100644 --- a/src/main/java/restService/DatabaseTransactionResource.java +++ b/src/main/java/restService/DatabaseTransactionResource.java @@ -1,4 +1,60 @@ package restService; +import database.transaction.Transaction; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import restImplementation.DatabaseTransactionImplementation; + +import javax.validation.Valid; +import java.util.List; + +@RestController +@RequestMapping(value = "/api/rest/transaction") public class DatabaseTransactionResource { + + @PostMapping("/save") + @ResponseStatus(HttpStatus.CREATED) + public ResponseEntity saveTransaction(@Valid @RequestBody Transaction transaction){ + try{ + DatabaseTransactionImplementation databaseTransactionImplementation = new DatabaseTransactionImplementation(); + databaseTransactionImplementation.saveTransaction(transaction); + return ResponseEntity.status(HttpStatus.OK).body(""); + }catch (Exception e){ + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage()); + } + } + + @GetMapping("/get") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity getTransaction(@Valid @RequestBody Transaction transaction){ + try{ + DatabaseTransactionImplementation databaseTransactionImplementation = new DatabaseTransactionImplementation(); + Transaction tx = databaseTransactionImplementation.getUserTransaction(transaction.getUserId(),transaction.getTransactionHash()); + if(tx != null){ + return ResponseEntity.status(HttpStatus.OK).body(tx); + }else { + return new ResponseEntity("Error", HttpStatus.NOT_FOUND); + } + }catch (Exception e){ + return new ResponseEntity(e.getMessage(), HttpStatus.BAD_REQUEST); + } + } + + @RequestMapping(value = "/getAll", method = RequestMethod.GET, params = {"userId"}, produces = "application/json") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity> getAllTransaction(@RequestParam(value = "userId") int userId){ + try{ + DatabaseTransactionImplementation databaseTransactionImplementation = new DatabaseTransactionImplementation(); + List transactionList = databaseTransactionImplementation.getAllUserTransactions(userId); + 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 0d1eea6..a94072d 100644 --- a/src/main/java/restService/DatabaseUserResource.java +++ b/src/main/java/restService/DatabaseUserResource.java @@ -58,7 +58,7 @@ public class DatabaseUserResource { userResponse.setUserId(response.getUserId()); return ResponseEntity.status(HttpStatus.OK).body(userResponse); }else{ - return new ResponseEntity("Error", HttpStatus.CONFLICT); + return new ResponseEntity("Error", HttpStatus.NOT_FOUND); } }catch (Exception e){ return new ResponseEntity(e.getMessage(), HttpStatus.CONFLICT);