From c4b38bf0417e670d975ba442ce8f3a8d53d8c92b Mon Sep 17 00:00:00 2001 From: GME Date: Thu, 18 Apr 2019 22:20:10 +0200 Subject: [PATCH] update database helper and transaction --- src/main/java/database/DatabaseHelper.java | 14 +- src/main/java/database/Wallet/WalletDao.java | 20 ++- .../java/database/session/SessionDao.java | 5 +- .../database/transaction/TransactionDao.java | 91 +++++++++-- src/main/java/database/user/UserDao.java | 31 +++- .../TransactionImplementation.java | 97 ++++++----- .../java/restService/TransactionResource.java | 150 +++++++++++++----- src/test/java/database/TransactionTest.java | 25 +++ src/test/java/database/UserLoginTest.java | 22 +++ .../TransactionImplementationTest.java | 2 + 10 files changed, 346 insertions(+), 111 deletions(-) create mode 100644 src/test/java/database/TransactionTest.java create mode 100644 src/test/java/database/UserLoginTest.java diff --git a/src/main/java/database/DatabaseHelper.java b/src/main/java/database/DatabaseHelper.java index 61120c2..4150120 100644 --- a/src/main/java/database/DatabaseHelper.java +++ b/src/main/java/database/DatabaseHelper.java @@ -10,13 +10,25 @@ public class DatabaseHelper { private static final String DATABASE_PWD = "vHEQszGXcJ6;/)}z!V"; private final static String DATABASE_URL = "jdbc:postgresql://37.187.101.44:5432/"+DATABASE_NAME; + private static JdbcConnectionSource jdbcConnectionSource; public ConnectionSource setupDatabaseConnection(){ try{ - return new JdbcConnectionSource(DATABASE_URL, DATABASE_USER, DATABASE_PWD); + jdbcConnectionSource = new JdbcConnectionSource(DATABASE_URL, DATABASE_USER, DATABASE_PWD); + return jdbcConnectionSource; }catch (Exception e){ System.out.print("\n"+e.getMessage()); return null; } } + + public static void closeConnection(){ + try{ + jdbcConnectionSource.close(); + } catch (Exception e){ + e.printStackTrace(); + } + } + + } diff --git a/src/main/java/database/Wallet/WalletDao.java b/src/main/java/database/Wallet/WalletDao.java index c433aa3..ce7ad6d 100644 --- a/src/main/java/database/Wallet/WalletDao.java +++ b/src/main/java/database/Wallet/WalletDao.java @@ -6,10 +6,6 @@ import com.j256.ormlite.stmt.PreparedQuery; import com.j256.ormlite.stmt.QueryBuilder; import com.j256.ormlite.stmt.UpdateBuilder; import database.DatabaseHelper; -import org.apache.log4j.BasicConfigurator; -import org.apache.log4j.Logger; -import restImplementation.WalletImplementation; - import java.time.Instant; import java.util.List; @@ -32,6 +28,7 @@ public class WalletDao { public void addWallet(Wallet wallet)throws Exception { createWalletDaoConnection(); walletDao.create(wallet); + DatabaseHelper.closeConnection(); } public Wallet getWallet(String walletHash) throws Exception { @@ -39,7 +36,9 @@ public class WalletDao { QueryBuilder queryBuilder = walletDao.queryBuilder(); queryBuilder.where().eq("wallet_hash",walletHash).and().eq("is_active",true); PreparedQuery preparedQuery = queryBuilder.prepare(); - return walletDao.queryForFirst(preparedQuery); + Wallet w = walletDao.queryForFirst(preparedQuery); + DatabaseHelper.closeConnection(); + return w; } public void updateWalletBalance(String walletHash, double newBalance) throws Exception { @@ -50,6 +49,7 @@ public class WalletDao { updateBuilder.updateColumnValue("modification_date",now); updateBuilder.where().eq("wallet_hash",walletHash); updateBuilder.update(); + DatabaseHelper.closeConnection(); } public List getUserWallet(String userHash) throws Exception { @@ -57,7 +57,9 @@ public class WalletDao { QueryBuilder queryBuilder = walletDao.queryBuilder(); queryBuilder.where().eq("user_hash",userHash).and().eq("is_active",true); PreparedQuery preparedQuery = queryBuilder.prepare(); - return walletDao.query(preparedQuery); + List w = walletDao.query(preparedQuery); + DatabaseHelper.closeConnection(); + return w; } public List getUserOldWallets(String userHash) throws Exception{ @@ -65,7 +67,9 @@ public class WalletDao { QueryBuilder queryBuilder = walletDao.queryBuilder(); queryBuilder.where().eq("user_hash",userHash).and().eq("is_active",false); PreparedQuery preparedQuery = queryBuilder.prepare(); - return walletDao.query(preparedQuery); + List w = walletDao.query(preparedQuery); + DatabaseHelper.closeConnection(); + return w; } public void transferWallet(String walletHash, String newUserHash) throws Exception{ @@ -76,6 +80,7 @@ public class WalletDao { updateBuilder.updateColumnValue("modification_date",now); updateBuilder.where().eq("wallet_hash",walletHash).and().eq("is_active",true); updateBuilder.update(); + DatabaseHelper.closeConnection(); } public void deleteWallet(String walletHash, String userHash) throws Exception{ @@ -86,6 +91,7 @@ public class WalletDao { updateBuilder.updateColumnValue("modification_date",now); updateBuilder.where().eq("wallet_hash",walletHash).and().eq("user_hash",userHash); updateBuilder.update(); + DatabaseHelper.closeConnection(); } } diff --git a/src/main/java/database/session/SessionDao.java b/src/main/java/database/session/SessionDao.java index 8473c39..eed6866 100644 --- a/src/main/java/database/session/SessionDao.java +++ b/src/main/java/database/session/SessionDao.java @@ -25,7 +25,9 @@ public class SessionDao { public int setStartSession(Session session) throws Exception { createSessionDaoConnection(); sessionDao.create(session); - return session.getSession_id(); + int Session_id = session.getSession_id(); + DatabaseHelper.closeConnection(); + return Session_id; } public void setEndSession(int session_id) throws Exception { @@ -35,5 +37,6 @@ public class SessionDao { updateBuilder.updateColumnValue("end_session",now); updateBuilder.where().eq("session_id",session_id); updateBuilder.update(); + DatabaseHelper.closeConnection(); } } diff --git a/src/main/java/database/transaction/TransactionDao.java b/src/main/java/database/transaction/TransactionDao.java index c55d65e..397552c 100644 --- a/src/main/java/database/transaction/TransactionDao.java +++ b/src/main/java/database/transaction/TransactionDao.java @@ -5,7 +5,7 @@ import com.j256.ormlite.dao.DaoManager; import com.j256.ormlite.stmt.PreparedQuery; import com.j256.ormlite.stmt.QueryBuilder; import database.DatabaseHelper; - +import java.math.BigInteger; import java.util.List; public class TransactionDao { @@ -26,16 +26,23 @@ public class TransactionDao { public void addTransaction(Transaction transaction)throws Exception{ createTransactionDaoConnection(); transactionDao.create(transaction); + DatabaseHelper.closeConnection(); } - public List getWalletTransactions(String wallet_hash)throws Exception{ + public List getWalletTransactions(String wallet_hash, int size)throws Exception{ createTransactionDaoConnection(); QueryBuilder queryBuilder = transactionDao.queryBuilder(); queryBuilder.where().eq("transaction_from",wallet_hash).or().eq("transaction_to",wallet_hash); - queryBuilder.limit(new Long(10)); + + if(size!=0){ + queryBuilder.limit(new Long(size)); + } + queryBuilder.orderBy("transaction_date",false); PreparedQuery preparedQuery = queryBuilder.prepare(); - return transactionDao.query(preparedQuery); + List t = transactionDao.query(preparedQuery); + DatabaseHelper.closeConnection(); + return t; } public Transaction getTransaction(String wallet_hash, String transaction_hash)throws Exception{ @@ -43,25 +50,91 @@ public class TransactionDao { QueryBuilder queryBuilder = transactionDao.queryBuilder(); queryBuilder.where().eq("transaction_to",wallet_hash).or().eq("transaction_from",wallet_hash).and().eq("transaction_hash",transaction_hash); PreparedQuery preparedQuery = queryBuilder.prepare(); - return transactionDao.queryForFirst(preparedQuery); + Transaction t = transactionDao.queryForFirst(preparedQuery); + DatabaseHelper.closeConnection(); + return t; } - public List getUserSentTransaction(String wallet_hash)throws Exception{ + public List getSentTransactions(String wallet_hash, int number)throws Exception{ createTransactionDaoConnection(); QueryBuilder queryBuilder = transactionDao.queryBuilder(); queryBuilder.where().eq("transaction_from",wallet_hash); + + if(number!=0){ + queryBuilder.limit(new Long(number)); + } + queryBuilder.orderBy("transaction_date",false); PreparedQuery preparedQuery = queryBuilder.prepare(); - return transactionDao.query(preparedQuery); + List t = transactionDao.query(preparedQuery); + DatabaseHelper.closeConnection(); + return t; } - public List getUserReceivedTransaction(String wallet_hash)throws Exception{ + public List getReceivedTransactions(String wallet_hash, int number)throws Exception{ createTransactionDaoConnection(); QueryBuilder queryBuilder = transactionDao.queryBuilder(); queryBuilder.where().eq("transaction_to",wallet_hash); + + if(number!=0){ + queryBuilder.limit(new Long(number)); + } + queryBuilder.orderBy("transaction_date",false); PreparedQuery preparedQuery = queryBuilder.prepare(); - return transactionDao.query(preparedQuery); + List t = transactionDao.query(preparedQuery); + DatabaseHelper.closeConnection(); + return t; } + public List getAllTransactionBetweenDate(String wallet_hash, String start, String end, int number) throws Exception{ + createTransactionDaoConnection(); + QueryBuilder queryBuilder = transactionDao.queryBuilder(); + queryBuilder.where().eq("transaction_from",wallet_hash).or().eq("transaction_to",wallet_hash); + queryBuilder.where().between("transaction_date", new BigInteger(start), new BigInteger(end)); + + if(number!=0){ + queryBuilder.limit(new Long(number)); + } + + queryBuilder.orderBy("transaction_date",false); + PreparedQuery preparedQuery = queryBuilder.prepare(); + List t = transactionDao.query(preparedQuery); + DatabaseHelper.closeConnection(); + return t; + } + + public List getSentTransactionBetweenDate(String wallet_hash, String start, String end, int number) throws Exception{ + createTransactionDaoConnection(); + QueryBuilder queryBuilder = transactionDao.queryBuilder(); + queryBuilder.where().eq("transaction_from",wallet_hash).and().between("transaction_date", new BigInteger(start), new BigInteger(end)); + + if(number!=0){ + queryBuilder.limit(new Long(number)); + } + + queryBuilder.orderBy("transaction_date",false); + PreparedQuery preparedQuery = queryBuilder.prepare(); + List t = transactionDao.query(preparedQuery); + DatabaseHelper.closeConnection(); + return t; + } + + public List getReceivedTransactionBetweenDate(String wallet_hash, String start, String end, int number) throws Exception{ + createTransactionDaoConnection(); + QueryBuilder queryBuilder = transactionDao.queryBuilder(); + queryBuilder.where().eq("transaction_to",wallet_hash).and().between("transaction_date", new BigInteger(start), new BigInteger(end)); + + if(number!=0){ + queryBuilder.limit(new Long(number)); + } + + queryBuilder.orderBy("transaction_date",false); + PreparedQuery preparedQuery = queryBuilder.prepare(); + List t = transactionDao.query(preparedQuery); + DatabaseHelper.closeConnection(); + return t; + } + + } diff --git a/src/main/java/database/user/UserDao.java b/src/main/java/database/user/UserDao.java index 8369d91..e69dd57 100644 --- a/src/main/java/database/user/UserDao.java +++ b/src/main/java/database/user/UserDao.java @@ -13,7 +13,7 @@ import java.time.Instant; public class UserDao { private DatabaseHelper dbh = new DatabaseHelper(); private boolean sessionOpen = false; - private Dao userDao ; + private Dao userDao; private void createUserDaoConnection(){ try { if(!sessionOpen){ @@ -28,6 +28,7 @@ public class UserDao { public void addUser(User user)throws Exception { createUserDaoConnection(); userDao.create(user); + DatabaseHelper.closeConnection(); } public boolean checkApprovedUser(String email) throws Exception { @@ -36,6 +37,7 @@ public class UserDao { queryBuilder.where().eq("email",email); PreparedQuery preparedQuery = queryBuilder.prepare(); User user = userDao.queryForFirst(preparedQuery); + DatabaseHelper.closeConnection(); return user.isApproved(); } @@ -45,6 +47,7 @@ public class UserDao { queryBuilder.where().eq("email",email); PreparedQuery preparedQuery = queryBuilder.prepare(); User user = userDao.queryForFirst(preparedQuery); + DatabaseHelper.closeConnection(); return user.isVerified(); } @@ -56,10 +59,11 @@ public class UserDao { updateBuilder.updateColumnValue("modification_date",now); updateBuilder.where().eq("email",email); updateBuilder.update(); - if(checkUserPassword(email, password)){ + DatabaseHelper.closeConnection(); return true; }else{ + DatabaseHelper.closeConnection(); return false; } } @@ -69,6 +73,7 @@ public class UserDao { DeleteBuilder deleteBuilder = userDao.deleteBuilder(); deleteBuilder.where().eq("email",email); deleteBuilder.delete(); + DatabaseHelper.closeConnection(); } public boolean verifyUserExist(String email) throws Exception { @@ -77,7 +82,7 @@ public class UserDao { queryBuilder.where().eq("email",email); PreparedQuery preparedQuery = queryBuilder.prepare(); User user = userDao.queryForFirst(preparedQuery); - + DatabaseHelper.closeConnection(); if(user==null){ return false; }else{ @@ -86,7 +91,6 @@ public class UserDao { } public boolean checkUserPassword(String email, String password) throws Exception { - createUserDaoConnection(); User user = getUserWithEmail(email); if(password.equals(user.getPassword())){ return true; @@ -103,7 +107,9 @@ public class UserDao { QueryBuilder queryBuilder = userDao.queryBuilder(); queryBuilder.where().eq("email",email); PreparedQuery preparedQuery = queryBuilder.prepare(); - return userDao.queryForFirst(preparedQuery); + User u = userDao.queryForFirst(preparedQuery); + DatabaseHelper.closeConnection(); + return u; } } @@ -112,7 +118,9 @@ public class UserDao { QueryBuilder queryBuilder = userDao.queryBuilder(); queryBuilder.where().eq("phone",phone); PreparedQuery preparedQuery = queryBuilder.prepare(); - return userDao.queryForFirst(preparedQuery); + User u = userDao.queryForFirst(preparedQuery); + DatabaseHelper.closeConnection(); + return u; } public User getUserWithMailAndPhone(String email, String phone) throws Exception { @@ -120,7 +128,9 @@ public class UserDao { QueryBuilder queryBuilder = userDao.queryBuilder(); queryBuilder.where().eq("email",email).and().eq("phone",phone); PreparedQuery preparedQuery = queryBuilder.prepare(); - return userDao.queryForFirst(preparedQuery); + User u = userDao.queryForFirst(preparedQuery); + DatabaseHelper.closeConnection(); + return u; } public User getUserWithHash(String userHash) throws Exception { @@ -128,7 +138,9 @@ public class UserDao { QueryBuilder queryBuilder = userDao.queryBuilder(); queryBuilder.where().eq("user_hash",userHash); PreparedQuery preparedQuery = queryBuilder.prepare(); - return userDao.queryForFirst(preparedQuery); + User u = userDao.queryForFirst(preparedQuery); + DatabaseHelper.closeConnection(); + return u; } public int getUserIdWithHashAndEmail(String userHash, String userEmail) throws Exception { @@ -137,6 +149,7 @@ public class UserDao { queryBuilder.where().eq("user_hash",userHash).and().eq("email",userEmail); PreparedQuery preparedQuery = queryBuilder.prepare(); User userResponse = userDao.queryForFirst(preparedQuery); + DatabaseHelper.closeConnection(); return userResponse.getUserId(); } @@ -148,6 +161,7 @@ public class UserDao { updateBuilder.updateColumnValue("modification_date",now); updateBuilder.where().eq("email",email); updateBuilder.update(); + DatabaseHelper.closeConnection(); } public void verifyUser (String email) throws Exception{ @@ -158,5 +172,6 @@ public class UserDao { updateBuilder.updateColumnValue("modification_date",now); updateBuilder.where().eq("email",email); updateBuilder.update(); + DatabaseHelper.closeConnection(); } } diff --git a/src/main/java/restImplementation/TransactionImplementation.java b/src/main/java/restImplementation/TransactionImplementation.java index 874003e..025c40a 100644 --- a/src/main/java/restImplementation/TransactionImplementation.java +++ b/src/main/java/restImplementation/TransactionImplementation.java @@ -2,8 +2,6 @@ package restImplementation; import blockchain.query.QueryWrapper; import blockchain.query.TransactionWrapper; -import database.Wallet.Wallet; -import database.Wallet.WalletDao; import database.transaction.Transaction; import database.transaction.TransactionDao; import database.user.User; @@ -18,7 +16,6 @@ import java.time.Instant; import java.util.*; public class TransactionImplementation { - public HashMap sendTransaction(String sourceUserHash, String sourceUserPwd, String sourceWalletHash, String destinationWalletHash, double amount, String transactionUnit) throws Exception { TransactionWrapper transactionWrapper = new TransactionWrapper(); QueryWrapper queryWrapper = new QueryWrapper(); @@ -81,73 +78,86 @@ public class TransactionImplementation { return returnResponse; } - //GET + + //GET A TRANSACTION public Transaction getTransaction(String wallet_hash, String transaction_hash) throws Exception { TransactionDao transactionDao = new TransactionDao(); return transactionDao.getTransaction(wallet_hash,transaction_hash); } - //SENT - public List getSentTransaction(String wallet_hash) throws Exception { - TransactionDao transactionDao = new TransactionDao(); - return transactionDao.getUserSentTransaction(wallet_hash); - } - public List> getAllSentTransaction(String user_hash) throws Exception { - TransactionDao transactionDao = new TransactionDao(); - WalletDao walletDao = new WalletDao(); - List> transactionList = new ArrayList<>(); - List userWallets = walletDao.getUserWallet(user_hash); - for(Wallet w : userWallets){ - transactionList.add(transactionDao.getUserSentTransaction(w.getWallet_hash())); - } - return transactionList; + //GET LATEST + public List getLatestTransactions(String wallet_hash) throws Exception { + TransactionDao transactionDao = new TransactionDao(); + return transactionDao.getWalletTransactions(wallet_hash,10); } + //GET ALL + public List getWalletTransactions(String wallet_hash, String size) throws Exception { + TransactionDao transactionDao = new TransactionDao(); + return transactionDao.getWalletTransactions(wallet_hash,Integer.parseInt(size)); + } + + + //GET ALL BETWEEN DATE + public List getAllBetweenDate(String wallet_hash, String start, String end, String size) throws Exception{ + TransactionDao transactionDao = new TransactionDao(); + return transactionDao.getAllTransactionBetweenDate(wallet_hash,start,end,Integer.parseInt(size)); + } + + + //SENT + public List getSentTransaction(String wallet_hash, String size) throws Exception { + TransactionDao transactionDao = new TransactionDao(); + return transactionDao.getSentTransactions(wallet_hash, Integer.parseInt(size)); + } + + + public List getSentBetweenDate(String wallet_hash, String start, String end, String size) throws Exception{ + TransactionDao transactionDao = new TransactionDao(); + return transactionDao.getSentTransactionBetweenDate(wallet_hash,start,end,Integer.parseInt(size)); + } + + //RECEIVED - public List getReceivedTransaction(String wallet_hash) throws Exception { + public List getReceivedTransaction(String wallet_hash, String size) throws Exception { TransactionDao transactionDao = new TransactionDao(); - return transactionDao.getUserReceivedTransaction(wallet_hash); + return transactionDao.getReceivedTransactions(wallet_hash, Integer.parseInt(size)); } - public List> getAllReceivedTransaction(String user_hash) throws Exception { + + + public List getReceivedBetweenDate(String wallet_hash, String start, String end, String size) throws Exception{ + TransactionDao transactionDao = new TransactionDao(); + return transactionDao.getReceivedTransactionBetweenDate(wallet_hash,start,end,Integer.parseInt(size)); + } + + + /* + public List> getAllSentTransaction(String user_hash, String number) throws Exception { TransactionDao transactionDao = new TransactionDao(); WalletDao walletDao = new WalletDao(); List> transactionList = new ArrayList<>(); List userWallets = walletDao.getUserWallet(user_hash); for(Wallet w : userWallets){ - transactionList.add(transactionDao.getUserReceivedTransaction(w.getWallet_hash())); + transactionList.add(transactionDao.getUserSentTransaction(w.getWallet_hash(),Integer.parseInt(number))); } return transactionList; } - public List getLatestTransactions(String user_hash) throws Exception { + public List> getAllReceivedTransaction(String user_hash, String number) throws Exception { TransactionDao transactionDao = new TransactionDao(); WalletDao walletDao = new WalletDao(); - List returnList = new ArrayList<>(); + List> transactionList = new ArrayList<>(); List userWallets = walletDao.getUserWallet(user_hash); - List allTransactions = new ArrayList<>(); for(Wallet w : userWallets){ - List list = transactionDao.getWalletTransactions(w.getWallet_hash()); - for(Transaction t : list){ - allTransactions.add(t); - } + transactionList.add(transactionDao.getUserReceivedTransaction(w.getWallet_hash(), Integer.parseInt(number))); } - Collections.sort(allTransactions); - - int iterator = 0; - int reverseListIndex = allTransactions.size()-1; - while (iterator<10){ - returnList.add(allTransactions.get(reverseListIndex)); - iterator++; - reverseListIndex--; - } - - return returnList; + return transactionList; } - public List getAllTransactions(String user_hash) throws Exception { + public List getAllTransactions(String user_hash, String number) throws Exception { TransactionDao transactionDao = new TransactionDao(); WalletDao walletDao = new WalletDao(); List userWallets = walletDao.getUserWallet(user_hash); @@ -155,7 +165,7 @@ public class TransactionImplementation { List returnList = new ArrayList<>(); for(Wallet w : userWallets){ - List list = transactionDao.getWalletTransactions(w.getWallet_hash()); + List list = transactionDao.getWalletTransactions(w.getWallet_hash(),Integer.parseInt(number)); for(Transaction t : list){ allTransactions.add(t); } @@ -167,6 +177,5 @@ public class TransactionImplementation { return returnList; } - - //TODO SELECT BETWEEN + */ } diff --git a/src/main/java/restService/TransactionResource.java b/src/main/java/restService/TransactionResource.java index e0bcd6b..4375a9e 100644 --- a/src/main/java/restService/TransactionResource.java +++ b/src/main/java/restService/TransactionResource.java @@ -34,6 +34,7 @@ public class TransactionResource { } } + //GET A TRANSACTION @RequestMapping(value = "/get", method = RequestMethod.GET, params = {"wallet_hash","txID"},produces = "application/json") @ResponseStatus(HttpStatus.OK) @@ -52,7 +53,114 @@ public class TransactionResource { } } + + //GET LATEST + @RequestMapping(value = "/get/latest", method = RequestMethod.GET, params = {"wallet_hash"}, produces = "application/json") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity getLatestTransaction(@RequestParam(value = "wallet_hash") String wallet_hash){ + TransactionImplementation transactionImplementation = new TransactionImplementation(); + try { + List listTransaction = transactionImplementation.getLatestTransactions(wallet_hash); + return ResponseEntity.status(HttpStatus.OK).body(listTransaction); + } catch (Exception e){ + String r = "{\"response\":\""+e.getMessage()+"\"}"; + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); + } + } + + //GET ALL + @RequestMapping(value = "/getTransactions", method = RequestMethod.GET, params = {"wallet_hash","size"}, produces = "application/json") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity getWalletTransactions(@RequestParam(value = "wallet_hash") String wallet_hash, @RequestParam(value = "size") String size){ + TransactionImplementation transactionImplementation = new TransactionImplementation(); + try { + List listTransaction = transactionImplementation.getWalletTransactions(wallet_hash,size); + return ResponseEntity.status(HttpStatus.OK).body(listTransaction); + } catch (Exception e){ + String r = "{\"response\":\""+e.getMessage()+"\"}"; + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); + } + } + //GET ALL WITH DATE + @RequestMapping(value = "/getTransactions", method = RequestMethod.GET, params = {"wallet_hash","start_date","end_date","size"}, produces = "application/json") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity getWalletTransactionsWithDate(@RequestParam(value = "wallet_hash") String wallet_hash, @RequestParam(value = "start_date") String start_date, + @RequestParam(value = "end_date") String end_date, @RequestParam(value = "size") String size){ + TransactionImplementation transactionImplementation = new TransactionImplementation(); + try { + List listTransaction = transactionImplementation.getAllBetweenDate(wallet_hash,start_date,end_date,size); + return ResponseEntity.status(HttpStatus.OK).body(listTransaction); + } catch (Exception e){ + String r = "{\"response\":\""+e.getMessage()+"\"}"; + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); + } + } + + //SENT + //GET SENT + @RequestMapping(value = "/get/sent", method = RequestMethod.GET, params = {"wallet_hash","size"}, produces = "application/json") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity getSentTransaction(@RequestParam(value = "wallet_hash") String wallet_hash, @RequestParam(value = "size") String size){ + TransactionImplementation transactionImplementation = new TransactionImplementation(); + try { + List listTransaction = transactionImplementation.getSentTransaction(wallet_hash,size); + return ResponseEntity.status(HttpStatus.OK).body(listTransaction); + } catch (Exception e){ + String r = "{\"response\":\""+e.getMessage()+"\"}"; + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); + } + } + //GET SENT WITH DATE + @RequestMapping(value = "/get/sent", method = RequestMethod.GET, params = {"wallet_hash","start_date","end_date","size"}, produces = "application/json") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity getSentTransactionWithDate(@RequestParam(value = "wallet_hash") String wallet_hash, @RequestParam(value = "start_date") String start_date, + @RequestParam(value = "end_date") String end_date, @RequestParam(value = "size") String size){ + TransactionImplementation transactionImplementation = new TransactionImplementation(); + try { + List listTransaction = transactionImplementation.getSentBetweenDate(wallet_hash,start_date,end_date,size); + return ResponseEntity.status(HttpStatus.OK).body(listTransaction); + } catch (Exception e){ + String r = "{\"response\":\""+e.getMessage()+"\"}"; + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); + } + } + + + //RECEIVED + //GET RECEIVED + @RequestMapping(value = "/get/received", method = RequestMethod.GET, params = {"wallet_hash","size"}, produces = "application/json") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity getReceivedTransaction(@RequestParam(value = "wallet_hash") String wallet_hash, @RequestParam(value = "size") String size){ + TransactionImplementation transactionImplementation = new TransactionImplementation(); + try { + List listTransaction = transactionImplementation.getReceivedTransaction(wallet_hash,size); + return ResponseEntity.status(HttpStatus.OK).body(listTransaction); + } catch (Exception e){ + String r = "{\"response\":\""+e.getMessage()+"\"}"; + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); + } + } + //GET RECEIVED WITH DATE + @RequestMapping(value = "/get/received", method = RequestMethod.GET, params = {"wallet_hash","start_date","end_date","size"}, produces = "application/json") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity getReceivedTransactionWithDate(@RequestParam(value = "wallet_hash") String wallet_hash, @RequestParam(value = "start_date") String start_date, + @RequestParam(value = "end_date") String end_date, @RequestParam(value = "size") String size){ + TransactionImplementation transactionImplementation = new TransactionImplementation(); + try { + List listTransaction = transactionImplementation.getReceivedBetweenDate(wallet_hash,start_date,end_date,size); + return ResponseEntity.status(HttpStatus.OK).body(listTransaction); + } catch (Exception e){ + String r = "{\"response\":\""+e.getMessage()+"\"}"; + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); + } + } + + + + + + /* //GET ALL SENT TRANSACTION @RequestMapping(value = "/get/allSent", method = RequestMethod.GET, params = {"user_hash"}, produces = "application/json") @ResponseStatus(HttpStatus.OK) @@ -66,22 +174,7 @@ public class TransactionResource { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); } } - //GET SENT FROM WALLET - @RequestMapping(value = "/get/sent", method = RequestMethod.GET, params = {"wallet_hash"}, produces = "application/json") - @ResponseStatus(HttpStatus.OK) - public ResponseEntity getSentTransaction(@RequestParam(value = "wallet_hash") String wallet_hash){ - TransactionImplementation transactionImplementation = new TransactionImplementation(); - try { - List listTransaction = transactionImplementation.getSentTransaction(wallet_hash); - return ResponseEntity.status(HttpStatus.OK).body(listTransaction); - } catch (Exception e){ - String r = "{\"response\":\""+e.getMessage()+"\"}"; - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); - } - } - - //RECEIVED //GET ALL RECEIVED TRANSACTION @RequestMapping(value = "/get/allReceived", method = RequestMethod.GET, params = {"user_hash"}, produces = "application/json") @ResponseStatus(HttpStatus.OK) @@ -95,32 +188,6 @@ public class TransactionResource { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); } } - //GET RECEIVED FROM WALLET - @RequestMapping(value = "/get/received", method = RequestMethod.GET, params = {"wallet_hash"}, produces = "application/json") - @ResponseStatus(HttpStatus.OK) - public ResponseEntity getReceivedTransaction(@RequestParam(value = "wallet_hash") String wallet_hash){ - TransactionImplementation transactionImplementation = new TransactionImplementation(); - try { - List listTransaction = transactionImplementation.getReceivedTransaction(wallet_hash); - return ResponseEntity.status(HttpStatus.OK).body(listTransaction); - } catch (Exception e){ - String r = "{\"response\":\""+e.getMessage()+"\"}"; - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); - } - } - - @RequestMapping(value = "/get/latest", method = RequestMethod.GET, params = {"user_hash"}, produces = "application/json") - @ResponseStatus(HttpStatus.OK) - public ResponseEntity getLatestTransaction(@RequestParam(value = "user_hash") String user_hash){ - TransactionImplementation transactionImplementation = new TransactionImplementation(); - try { - List listTransaction = transactionImplementation.getLatestTransactions(user_hash); - return ResponseEntity.status(HttpStatus.OK).body(listTransaction); - } catch (Exception e){ - String r = "{\"response\":\""+e.getMessage()+"\"}"; - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); - } - } @RequestMapping(value = "/getAll", method = RequestMethod.GET, params = {"user_hash"}, produces = "application/json") @ResponseStatus(HttpStatus.OK) @@ -134,4 +201,5 @@ public class TransactionResource { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(r); } } + */ } diff --git a/src/test/java/database/TransactionTest.java b/src/test/java/database/TransactionTest.java new file mode 100644 index 0000000..d2ea1fc --- /dev/null +++ b/src/test/java/database/TransactionTest.java @@ -0,0 +1,25 @@ +package database; + +import database.transaction.Transaction; +import database.transaction.TransactionDao; +import org.junit.Ignore; +import org.junit.Test; + +import java.util.List; + +@Ignore +public class TransactionTest { + @Test + public void getTransactionBetween(){ + TransactionDao transactionDao = new TransactionDao(); + try{ + List list = transactionDao.getAllTransactionBetweenDate("$2a$10$dmrOFohMnbeVzVHMGc5JnuQ7MMTObn3lHTrMSe/IonD3VTeM.muo.","1555180582250","1555186015913",2); + for(Transaction t : list){ + System.out.println(t.toString()); + } + }catch (Exception e){ + e.printStackTrace(); + } + + } +} diff --git a/src/test/java/database/UserLoginTest.java b/src/test/java/database/UserLoginTest.java new file mode 100644 index 0000000..c8486ea --- /dev/null +++ b/src/test/java/database/UserLoginTest.java @@ -0,0 +1,22 @@ +package database; + +import database.user.User; +import database.user.UserDao; +import org.junit.Ignore; +import org.junit.Test; + +@Ignore +public class UserLoginTest { + @Test + public void Login(){ + try{ + String email = "thomas.meunier@gmail.com"; + UserDao userDao = new UserDao(); + User u = userDao.getUserWithEmail(email); + System.out.println(u.toString()); + } catch (Exception e){ + e.printStackTrace(); + } + + } +} diff --git a/src/test/java/restImplementation/TransactionImplementationTest.java b/src/test/java/restImplementation/TransactionImplementationTest.java index 1bdf238..3d6298f 100644 --- a/src/test/java/restImplementation/TransactionImplementationTest.java +++ b/src/test/java/restImplementation/TransactionImplementationTest.java @@ -16,6 +16,7 @@ public class TransactionImplementationTest { + /* @Test public void doMultipleTransaction(){ TransactionImplementation transactionImplementation = new TransactionImplementation(); @@ -206,6 +207,7 @@ public class TransactionImplementationTest { logger.warn("Error: "+e.getMessage()); } } + */ }