[UCOD][PRE-PROD][21]-Create Transaction Verify Otp api response

UCOD-21
Omar Shahbaz 3 days ago
parent bfee943c62
commit e66468f575

@ -118,9 +118,8 @@ public class UserController {
}
@PostMapping(UCOURI.CREATE_TRAN_PIN)
public ResponseEntity<HttpStatus> createTransactionPin(@RequestBody CreateTransactionPinRequest request) {
transactionPinService.createTransactionPin(request);
return ResponseEntity.ok(HttpStatus.OK);
public ResponseEntity<TransactionOtpResponse> createTransactionPin(@RequestBody CreateTransactionPinRequest request) {
return ResponseEntity.ok(transactionPinService.createTransactionPin(request));
}
@PostMapping(UCOURI.VERIFY_TRAN_PIN)

@ -0,0 +1,23 @@
package com.mfsys.uco.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TransactionOtpResponse {
public Long pinserial;
public String obpPincode;
public LocalDateTime pinCreation;
public LocalDateTime pinExpiry;
}

@ -0,0 +1,7 @@
package com.mfsys.uco.exception;
public class TranVerificationPinException extends RuntimeException {
public TranVerificationPinException(String message) {
super(message);
}
}

@ -15,4 +15,7 @@ public interface PinRepository extends JpaRepository<Pin, Long> {
@Query("SELECT p FROM DG_PN_PIN p WHERE p.pincode =:obpPincode AND p.pinstatus = 'Unverified' AND p.pinExpirydate > CURRENT_TIMESTAMP AND p.pintype=:pinType ORDER BY p.pinserial DESC LIMIT 1")
Optional<Pin> findsss( String pinType, String obpPincode);
@Query("select p FROM DG_PN_PIN p WHERE p.pinserial = :serial AND p.pinstatus = 'Unverified' AND p.pinExpirydate > CURRENT_TIMESTAMP")
Optional<Pin> findLatestOtpBySerial(Long serial);
}

@ -1,14 +1,13 @@
package com.mfsys.uco.service;
import com.mfsys.uco.dto.ChangeTransactionPinRequest;
import com.mfsys.uco.dto.CreateTransactionPinRequest;
import com.mfsys.uco.dto.OTPRequest;
import com.mfsys.uco.dto.VerifyPinRequest;
import com.mfsys.uco.dto.*;
import com.mfsys.uco.exception.OldPinIncorrectException;
import com.mfsys.uco.exception.SameOldNewPinException;
import com.mfsys.uco.model.CustomerProfile;
import com.mfsys.uco.model.CustomerProfileId;
import com.mfsys.uco.model.Pin;
import com.mfsys.uco.repository.CustomerProfileRepository;
import com.mfsys.uco.repository.PinRepository;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -22,12 +21,20 @@ public class TransactionPinService {
private final CustomerProfileRepository customerProfileRepository;
private final NotificationService notificationService;
private final PinRepository pinRepository;
public void createTransactionPin(CreateTransactionPinRequest request) {
public TransactionOtpResponse createTransactionPin(CreateTransactionPinRequest request) {
CustomerProfile profile = fetchCustomer(request.getPorOrgacode(), request.getCmpCustcode());
profile.setCmpTranpin(request.getNewTransPincode());
sendOtp(profile, request.getChannelCode(), request.getPinType(), "Create Transaction Pin Verification OTP", request.isOtpRequired());
Long serial = sendOtp(profile, request.getChannelCode(), request.getPinType(), "Create Transaction Pin Verification OTP", request.isOtpRequired());
Pin pin = pinRepository.findLatestOtpBySerial(serial).get();
customerProfileRepository.save(profile);
return TransactionOtpResponse.builder()
.pinserial(pin.getPinserial())
.obpPincode(pin.getPincode())
.pinCreation(pin.getPinCreatedate())
.pinExpiry(pin.getPinExpirydate())
.build();
}

Loading…
Cancel
Save