using BuddyFinance.Common.Encryption;
using BuddyFinance.Integration;
using BuddyFinance.Integration.Models.Statements;
using BuddyFinance.Integration.Models.Transactions;
using BuddyFinance.WebApi.Filters;
using System.Web.Http;
namespace BuddyFinance.WebApi.Controllers
{
///
/// Manage Transactions
///
[RoutePrefix("api/transactions")]
[Authenticate]
public class TransactionsController : BaseController
{
private readonly TransactionsIntegrator _transactions = new TransactionsIntegrator();
///
/// Returns profile transaction histrory
///
///
///
[HttpGet]
[Route("gettransactions")]
public GetTransactionsResult GetTransactions(int profileId)
{
return _transactions.GetTransactions(profileId);
}
///
///
///
///
///
[HttpGet]
[Route("loantransactions")]
public GetTransactionsResult LoanTransactions(int loanId)
{
return _transactions.GetTransactionsByLoanId(loanId);
}
///
/// Returns a tranction by ID
///
/// Transaction ID
///
[HttpGet]
[Route("gettransaction")]
public GetTransactionResult GetTransaction(int transactionId)
{
return _transactions.GetTransaction(transactionId);
}
///
/// Save transaction data
///
/// Transaction Data
///
[HttpPost]
[Route("savetransaction")]
public SaveTransactionResult SaveTransaction(Transaction transaction)
{
return _transactions.SaveTransaction(transaction);
}
///
/// Retuns transtions within a date range
///
///
///
[HttpPost]
[Route("gettransactionsbydate")]
public GetTransactionsbyDate GetTransactionsbyDate(GetStatement dates)
{
dates.ProfileId = dates.ProfileId_.ToDecryptedInt();
return _transactions.GetStatement(dates);
}
}
}