package com.mfsys.uco.controller; import com.mfsys.uco.UCOURI; import com.mfsys.uco.dto.*; import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel; import com.mfsys.uco.model.TransactionTrail; import com.mfsys.uco.service.TransactionService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; @RestController @RequiredArgsConstructor public class TransactionController { private final TransactionService transactionService; @PostMapping(UCOURI.GET_DR_TRANSACTION_PIN) public TransactionPinResponseModel getDrTransactionOtp(@RequestBody TransactionOtpRequestModel transactionOtpRequestModel) { return transactionService.sendOtpAndValidateTranPin(transactionOtpRequestModel,false); } @PostMapping(UCOURI.RESEND_GET_DR_TRANSACTION_PIN) public TransactionPinResponseModel resendDrTransactionOtp(@RequestBody TransactionOtpRequestModel transactionOtpRequestModel) { return transactionService.sendOtpAndValidateTranPin(transactionOtpRequestModel,true); } @PostMapping(UCOURI.SUBMIT_DR_TRANSACTION) public Map cashInTransaction(@RequestBody CashInTransactionRequest transactionRequest) { return transactionService.cashInTransaction(transactionRequest); } @PostMapping(UCOURI.SUBMIT_ADD_MONEY_GL_ACC_DR_TRANSACTION) public Map addMoneyGlAccTransaction(@RequestBody GLAccontTranasctionRequestModel glAccontTranasctionRequestModel) { return transactionService.glAccountTransaction(glAccontTranasctionRequestModel); } @PostMapping(UCOURI.SUBMIT_CR_TRANSACTION) public Map cashOutTransaction(@RequestBody CashOutTransactionRequest transactionRequest) { return transactionService.cashOutTransaction(transactionRequest); } @GetMapping(UCOURI.PENDING_CR_TRANSACTION) public List getDepositAccounts( @RequestParam String porOrgacode, @RequestParam String mbmBkmsnumber) { return transactionService.fetchPendingCrTransactions(porOrgacode, mbmBkmsnumber); } @GetMapping(UCOURI.ACCOUNT_STATEMENT) public List getAccountStatement( @RequestParam String porOrgacode, @RequestParam String mbmBkmsnumber) { return transactionService.fetchDepositAccountStatement(porOrgacode, mbmBkmsnumber); } @GetMapping(UCOURI.CURRENCY_EVALUATION) public EvaluatedCurrencyReponse getEvaluatedCurrency( @RequestParam String porOrgacode, @RequestParam String baseCurrency, @RequestParam String targetCurrency, @RequestParam double sgtGntramtfc) { return transactionService.getEvaluatedCurrency(porOrgacode, baseCurrency,targetCurrency,sgtGntramtfc); } }