using BuddyFinance.Common.Encryption;
using BuddyFinance.Integration;
using BuddyFinance.Integration.Models;
using BuddyFinance.Integration.Models.LoanOffers;
using BuddyFinance.Integration.Models.LoanRequests;
using BuddyFinance.Integration.Utils;
using BuddyFinance.WebApi.Filters;
using System.Collections.Generic;
using System.Web.Http;
namespace BuddyFinance.WebApi.Controllers
{
///
///
///
[RoutePrefix("api/loanoffers")]
[Authenticate]
public class LoanOffersController : BaseController
{
private LoanOffersIntergrator _loanOffersIntergrator;
///
///
///
public LoanOffersController()
{
_loanOffersIntergrator = new LoanOffersIntergrator();
}
///
///
///
///
///
public GetLoanOfferResult GetLoanOffer(int id)
{
return _loanOffersIntergrator.GetLoanOffer(id);
}
///
///
///
///
public GetLoanOffersResult GetLoanOffers()
{
return _loanOffersIntergrator.GetLoanOffers();
}
///
///
///
///
///
public GetLoanOffersResult GetLoanOffers(int profileId)
{
return _loanOffersIntergrator.GetLoanOffers(profileId);
}
///
///
///
///
///
public GetLoanOffersResult GetLoanOffers(string lenderId)
{
var profileId = lenderId.ToDecryptedInt();
return _loanOffersIntergrator.GetLoanOffers(profileId);
}
///
///
///
///
///
[HttpPost]
public GetLoanOffersResult GetLoanOffersByAmount(GetOffersModel getOffers)//,Duration duration, int profileId)
{
var token = System.Web.HttpContext.Current.Request.Headers["X-Auth-Token"]; //currentl user token
var profileId = string.IsNullOrEmpty(token) ? null
: (int?)TokenManager.ProfileId(token);
return _loanOffersIntergrator.GetLoanOffersByAmount(getOffers, profileId);//, duration, profileId);
}
///
///
///
///
///
[HttpPost]
public SaveLoanOfferResult SaveLoanOffer(LoanOfferModel loanOfferModel)
{
//fix for 'Profile not found error'
var token = System.Web.HttpContext.Current.Request.Headers["X-Auth-Token"]; //currentl user token
var profileId = TokenManager.ProfileId(token);
loanOfferModel.LenderId = profileId;
return _loanOffersIntergrator.SaveLoanOffer(loanOfferModel);
}
//public EditLoanOfferResult EditLoanOfferResult(LoanOfferModel loanOfferModel)
//{
// return _loanOffersIntergrator.EditLoanOffer(loanOfferModel);
//}
///
///
///
///
///
[HttpPost]
public DeleteLoanOffer DeleteLoanOffer(int offerId)
{
return _loanOffersIntergrator.DeleteLoanOffer(offerId);
}
///
///
///
///
///
[HttpPost]
public AcceptLoanOfferRequest AcceptLoanOfferRequest(int loanRequestOfferId)
{
return _loanOffersIntergrator.AcceptLoanOfferRequest(loanRequestOfferId);
}
///
///
///
///
///
[HttpPost]
public RejectLoanOfferRequest RejectLoanOfferRequest(RejectLoanOfferModel model)
{
return _loanOffersIntergrator.RejectLoanOfferRequest(model);
}
///
///
///
///
///
[HttpGet]
public OfferLoanRequestsResult GetLoanRequestOffers(int loanOfferId)
{
return _loanOffersIntergrator.GetOfferLoanRequests(loanOfferId);
}
///
/// Returns offers for a selected Request
///
/// Request Id
///
[HttpGet]
public BaseResult> LoanRequestOffers(int loanRequestId)
{
return _loanOffersIntergrator.LoanRequestOffers(loanRequestId);
}
///
///
///
///
///
[HttpGet]
public BaseResult LoanRequestOffersCount(int profileId)
{
return _loanOffersIntergrator.LoanRequestOffersCount(profileId);
}
///
///
///
///
///
[HttpPost]
public RenderLoanOffer renderLoanOffer(int loanOfferId)
{
return _loanOffersIntergrator.RenderLoanOffer(loanOfferId);
}
///
///
///
///
///
[HttpPost]
public ClaimLoanOfferBalance ClaimLoanOfferBalance(int loanofferId)
{
return _loanOffersIntergrator.ClaimLoanOfferBalance(loanofferId);
}
}
}