From 9a09bc2b4c03863a3b4408ced67f543af1f88bbe Mon Sep 17 00:00:00 2001 From: GME Date: Sun, 31 Mar 2019 12:21:58 +0200 Subject: [PATCH] Add Wallet Database --- src/main/java/database/Wallet/Wallet.java | 101 ++++++++++++++++++ src/main/java/database/Wallet/WalletDao.java | 70 ++++++++++++ .../UserImplementation.java | 1 + src/main/java/restService/UserResource.java | 14 +++ 4 files changed, 186 insertions(+) diff --git a/src/main/java/database/Wallet/Wallet.java b/src/main/java/database/Wallet/Wallet.java index 78aab6d..7da298a 100644 --- a/src/main/java/database/Wallet/Wallet.java +++ b/src/main/java/database/Wallet/Wallet.java @@ -1,4 +1,105 @@ package database.Wallet; +import com.j256.ormlite.field.DatabaseField; +import com.j256.ormlite.table.DatabaseTable; + + +@DatabaseTable(tableName = "T_WALLET") public class Wallet { + @DatabaseField(canBeNull = false) + private String wallet_hash; + @DatabaseField(canBeNull = false) + private String user_hash; + @DatabaseField(canBeNull = false) + private String type; + @DatabaseField(canBeNull = false) + private Double sold; + @DatabaseField(canBeNull = false) + private long creation_date; + @DatabaseField(canBeNull = false) + private long modification_date; + @DatabaseField(canBeNull = false) + private boolean is_active; + + //Constructors + //Default constructor for ORMLite + public Wallet() { + } + + public Wallet(String wallet_hash, String user_hash, String type, boolean isActive) { + this.wallet_hash = wallet_hash; + this.user_hash = user_hash; + this.type = type; + this.is_active = isActive; + } + + public Wallet(String wallet_hash, String user_hash, String type, Double sold, boolean isActive) { + this.wallet_hash = wallet_hash; + this.user_hash = user_hash; + this.type = type; + this.sold = sold; + this.is_active = isActive; + } + + public String getWallet_hash() { + return wallet_hash; + } + public void setWallet_hash(String wallet_hash) { + this.wallet_hash = wallet_hash; + } + + public String getUser_hash() { + return user_hash; + } + public void setUser_hash(String user_hash) { + this.user_hash = user_hash; + } + + public String getType() { + return type; + } + public void setType(String type) { + this.type = type; + } + + public Double getSold() { + return sold; + } + public void setSold(Double sold) { + this.sold = sold; + } + + public boolean isIs_active() { + return is_active; + } + + public void setIs_active(boolean is_active) { + this.is_active = is_active; + } + + public long getCreation_date() { + return creation_date; + } + + public void setCreation_date(long creation_date) { + this.creation_date = creation_date; + } + + public long getModification_date() { + return modification_date; + } + + public void setModification_date(long modification_date) { + this.modification_date = modification_date; + } + + @Override + public String toString() { + return "Wallet{" + + "wallet_hash='" + wallet_hash + '\'' + + ", user_hash='" + user_hash + '\'' + + ", type='" + type + '\'' + + ", sold=" + sold + + '}'; + } } diff --git a/src/main/java/database/Wallet/WalletDao.java b/src/main/java/database/Wallet/WalletDao.java index 33ac10c..a4f8d9b 100644 --- a/src/main/java/database/Wallet/WalletDao.java +++ b/src/main/java/database/Wallet/WalletDao.java @@ -1,4 +1,74 @@ package database.Wallet; +import com.j256.ormlite.dao.Dao; +import com.j256.ormlite.dao.DaoManager; +import com.j256.ormlite.stmt.PreparedQuery; +import com.j256.ormlite.stmt.QueryBuilder; +import com.j256.ormlite.stmt.UpdateBuilder; +import database.DatabaseHelper; +import java.sql.Timestamp; +import java.util.List; + public class WalletDao { + private DatabaseHelper dbh = new DatabaseHelper(); + private Dao walletDao; + + private Dao createWalletDaoConnection(){ + try { + return DaoManager.createDao(dbh.setupDatabaseConnection(),Wallet.class); + }catch (Exception e){ + System.out.println(e.getMessage()); + return null; + } + } + + public void addWallet(Wallet wallet)throws Exception { + walletDao = createWalletDaoConnection(); + walletDao.create(wallet); + } + + public Wallet getWallet(String walletHash) throws Exception { + walletDao = createWalletDaoConnection(); + QueryBuilder queryBuilder = walletDao.queryBuilder(); + queryBuilder.where().eq("wallet_hash",walletHash).and().eq("is_active",true); + PreparedQuery preparedQuery = queryBuilder.prepare(); + return walletDao.queryForFirst(preparedQuery); + } + + public List getUserWallet(String userHash) throws Exception { + walletDao = createWalletDaoConnection(); + QueryBuilder queryBuilder = walletDao.queryBuilder(); + queryBuilder.where().eq("user_hash",userHash).and().eq("is_active",true); + PreparedQuery preparedQuery = queryBuilder.prepare(); + return walletDao.query(preparedQuery); + } + + public List getOldUserWallets(String userHash) throws Exception{ + walletDao = createWalletDaoConnection(); + QueryBuilder queryBuilder = walletDao.queryBuilder(); + queryBuilder.where().eq("user_hash",userHash).and().eq("is_active",false); + PreparedQuery preparedQuery = queryBuilder.prepare(); + return walletDao.query(preparedQuery); + } + + public void transferWallet(String walletHash, String newUserHash) throws Exception{ + walletDao = createWalletDaoConnection(); + UpdateBuilder updateBuilder = walletDao.updateBuilder(); + updateBuilder.updateColumnValue("user_hash",newUserHash); + Timestamp timestamp = new Timestamp(System.currentTimeMillis()); + updateBuilder.updateColumnValue("modification_date",timestamp.getTime()); + updateBuilder.where().eq("walletHash",walletHash).and().eq("is_active",true); + updateBuilder.update(); + } + + public void deleteWallet(String walletHash) throws Exception{ + walletDao = createWalletDaoConnection(); + UpdateBuilder updateBuilder = walletDao.updateBuilder(); + updateBuilder.updateColumnValue("is_active",false); + Timestamp timestamp = new Timestamp(System.currentTimeMillis()); + updateBuilder.updateColumnValue("modification_date",timestamp.getTime()); + updateBuilder.where().eq("walletHash",walletHash); + updateBuilder.update(); + } + } diff --git a/src/main/java/restImplementation/UserImplementation.java b/src/main/java/restImplementation/UserImplementation.java index f0ceb49..2404e8b 100644 --- a/src/main/java/restImplementation/UserImplementation.java +++ b/src/main/java/restImplementation/UserImplementation.java @@ -79,6 +79,7 @@ public class UserImplementation { return response; } + private String hashPassword(String plainTextPassword){ return BCrypt.hashpw(plainTextPassword,BCrypt.gensalt()); } diff --git a/src/main/java/restService/UserResource.java b/src/main/java/restService/UserResource.java index f27837e..3723bcf 100644 --- a/src/main/java/restService/UserResource.java +++ b/src/main/java/restService/UserResource.java @@ -89,6 +89,20 @@ public class UserResource { } } + /* + @PostMapping(value = "/delete", produces = "application/json") + @ResponseStatus(HttpStatus.OK) + public ResponseEntity removeUser(@Valid @RequestBody User user){ + try{ + UserImplementation userImplementation = new UserImplementation(); + + }catch (Exception e){ + StringResponse responseS = new StringResponse(e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(responseS); + } + } + */ + @PostMapping(value = "/update") @ResponseStatus(HttpStatus.OK)