You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
4.5 KiB
Java
111 lines
4.5 KiB
Java
package com.mfsys.uco.controller;
|
|
|
|
import com.itextpdf.kernel.pdf.PdfDocument;
|
|
import com.itextpdf.kernel.pdf.PdfWriter;
|
|
import com.itextpdf.layout.Document;
|
|
import com.itextpdf.layout.element.Paragraph;
|
|
import com.mfsys.uco.UCOURI;
|
|
import com.mfsys.uco.dto.*;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.math.BigDecimal;
|
|
import java.util.ArrayList;
|
|
import java.util.Base64;
|
|
import java.util.List;
|
|
|
|
@RestController
|
|
@RequiredArgsConstructor
|
|
public class UserController {
|
|
@PostMapping(UCOURI.VIEW_BALANCE)
|
|
public ViewBalanceResponseModel viewBalance(@RequestBody ViewBalanceRequestModel viewBalanceRequestModel) {
|
|
ViewBalanceResponseModel viewBalanceResponseModel = new ViewBalanceResponseModel();
|
|
viewBalanceResponseModel.setMbmBkmsbalance("100.00");
|
|
return viewBalanceResponseModel;
|
|
}
|
|
|
|
@GetMapping(UCOURI.FETCH_DEPOSITACCOUNTS)
|
|
public List<DepositAccount> getDepositAccounts(
|
|
@RequestParam String porOrgacode,
|
|
@RequestParam String custcode,
|
|
@RequestParam String pctcstycode) {
|
|
|
|
List<DepositAccount> accounts = new ArrayList<>();
|
|
DepositAccount account = new DepositAccount();
|
|
account.setPorOrgacode(porOrgacode);
|
|
account.setMbmBkmsnumber("123456789");
|
|
account.setPcrCurrdesc("US Dollars");
|
|
account.setPcrCurrCode("USD");
|
|
account.setPctCstycode(pctcstycode);
|
|
account.setMbmBkmstitle("Savings Account");
|
|
account.setMbmBkmsbalance(new BigDecimal("1000.00"));
|
|
account.setMbmBkmsopendate("2021-01-01");
|
|
account.setAccountType("SAVINGS");
|
|
accounts.add(account);
|
|
return accounts;
|
|
}
|
|
|
|
@GetMapping(UCOURI.FETCH_ACCOUNT_STATEMENT)
|
|
public List<DepositAccountTransaction> getAccountStatement(
|
|
@RequestParam String porOrgacode,
|
|
@RequestParam String mbmBkmsnumber,
|
|
@RequestParam String sgtGntrvaluedatefrom,
|
|
@RequestParam String sgtGntrvaluedateto
|
|
) {
|
|
|
|
List<DepositAccountTransaction> transactions = new ArrayList<>();
|
|
DepositAccountTransaction transaction = new DepositAccountTransaction();
|
|
transaction.setTranID("12345");
|
|
transaction.setSgtGntrCreatedAt("2024-03-17");
|
|
transaction.setSgtGntrNarration("Sample Transaction");
|
|
transaction.setSgtGntrvaluedate("2024-03-17");
|
|
transaction.setDeposit("100.00");
|
|
transaction.setWithdrawal("0.00");
|
|
transaction.setStatus("approved");
|
|
transaction.setSgtGntramt("1000.00");
|
|
transactions.add(transaction);
|
|
return transactions;
|
|
}
|
|
|
|
@GetMapping(UCOURI.FETCH_ACCOUNT_INQUIRY)
|
|
public AccountInquiryResponse getAccountInquiry(
|
|
@RequestParam String acntTypeCode,
|
|
@RequestParam String acntTypeValue) {
|
|
|
|
return new AccountInquiryResponse("Nabeel Dce");
|
|
}
|
|
|
|
@PostMapping(UCOURI.GET_TRANSACTION_PIN)
|
|
public TransactionPinResponseModel submitTransaction(@RequestBody TransactionPinRequestModel transactionPinRequestModel) {
|
|
TransactionPinResponseModel response = new TransactionPinResponseModel();
|
|
response.setOtdTranrequestid(123456);
|
|
response.setPinCode("1234");
|
|
return response;
|
|
}
|
|
|
|
@PostMapping(UCOURI.SUBMIT_TRANSACTION)
|
|
public TransactionResponseModel submitTransaction(@RequestBody TransactionRequestModel transactionRequestModel) {
|
|
String mockTranID = "TRAN1234567890";
|
|
return new TransactionResponseModel(mockTranID);
|
|
}
|
|
|
|
@PostMapping(UCOURI.GENERATE_TRANSACTIONS_REPORT)
|
|
public String generateReport(@RequestBody TransactionHistoryRequest request) {
|
|
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
|
|
PdfWriter writer = new PdfWriter(baos);
|
|
PdfDocument pdf = new PdfDocument(writer);
|
|
Document document = new Document(pdf);
|
|
|
|
document.add(new Paragraph("Account Transaction History Report"));
|
|
document.add(new Paragraph("Organization Code: " + request.getPorOrgacode()));
|
|
document.add(new Paragraph("Account Number: " + request.getMbmBkmsnumber()));
|
|
document.add(new Paragraph("From: " + request.getSgtGntrvaluedatefrom() + " To: " + request.getSgtGntrvaluedateto()));
|
|
document.close();
|
|
return Base64.getEncoder().encodeToString(baos.toByteArray());
|
|
} catch (Exception e) {
|
|
return "Error generating report";
|
|
}
|
|
}
|
|
}
|