java-api/src/main/java/database/transaction/TransactionDao.java
GME 86f6abfce5 Test & clean
TODO : end WalletImplementationTest
2019-04-03 19:53:12 +02:00

76 lines
3.3 KiB
Java

package database.transaction;
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 database.DatabaseHelper;
import java.util.List;
public class TransactionDao {
private DatabaseHelper dbh = new DatabaseHelper();
private Dao<Transaction, String> transactionDao;
private Dao createTransactionDaoConnection(){
try {
return DaoManager.createDao(dbh.setupDatabaseConnection(),Transaction.class);
}catch (Exception e){
System.out.println(e.getMessage());
return null;
}
}
public void addTransaction(Transaction transaction)throws Exception{
transactionDao = createTransactionDaoConnection();
transactionDao.create(transaction);
}
public List<Transaction> getUserTransactions(String userHash)throws Exception{
transactionDao = createTransactionDaoConnection();
QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder();
queryBuilder.where().eq("transaction_from",userHash).or().eq("transaction_to",userHash);
queryBuilder.orderBy("transaction_date",false);
PreparedQuery<Transaction> preparedQuery = queryBuilder.prepare();
return transactionDao.query(preparedQuery);
}
public List<Transaction> getTenLastUserTransactions(String userHash)throws Exception{
transactionDao = createTransactionDaoConnection();
QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder();
queryBuilder.where().eq("transaction_from",userHash).or().eq("transaction_to",userHash);
queryBuilder.limit(new Long(10));
queryBuilder.orderBy("transaction_date",false);
PreparedQuery<Transaction> preparedQuery = queryBuilder.prepare();
return transactionDao.query(preparedQuery);
}
public Transaction getTransaction(String userHash, String transactionHash)throws Exception{
transactionDao = createTransactionDaoConnection();
QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder();
queryBuilder.where().eq("transaction_to",userHash).or().eq("transaction_from",userHash).and().eq("transaction_hash",transactionHash);
PreparedQuery<Transaction> preparedQuery = queryBuilder.prepare();
return transactionDao.queryForFirst(preparedQuery);
}
public List<Transaction> getUserSentTransaction(String userHash)throws Exception{
transactionDao = createTransactionDaoConnection();
QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder();
queryBuilder.where().eq("transaction_from",userHash);
queryBuilder.orderBy("transaction_date",false);
PreparedQuery<Transaction> preparedQuery = queryBuilder.prepare();
return transactionDao.query(preparedQuery);
}
public List<Transaction> getUserReceivedTransaction(String userHash)throws Exception{
transactionDao = createTransactionDaoConnection();
QueryBuilder<Transaction, String> queryBuilder = transactionDao.queryBuilder();
queryBuilder.where().eq("transaction_to",userHash);
queryBuilder.orderBy("transaction_date",false);
PreparedQuery<Transaction> preparedQuery = queryBuilder.prepare();
return transactionDao.query(preparedQuery);
}
}