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.
UCO-BS/src/main/java/com/mfsys/uco/service/CustomerProfileService.java

50 lines
2.2 KiB
Java

package com.mfsys.uco.service;
import com.mfsys.uco.dto.UpdateProfileRequestPayload;
import com.mfsys.uco.exception.BenificiaryAlreadyExistsException;
import com.mfsys.uco.model.Beneficiary;
import com.mfsys.uco.model.CustomerProfile;
import com.mfsys.uco.model.CustomerProfileId;
import com.mfsys.uco.repository.BeneficiaryRepository;
import com.mfsys.uco.repository.CustomerProfileRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
@RequiredArgsConstructor
public class CustomerProfileService {
private final CustomerProfileRepository customerProfileRepository;
private final BeneficiaryRepository beneficiaryRepository;
public void deleteBeneficiary(String porOrgacode, String email, String mbmBkmsnumberRef) {
beneficiaryRepository.deleteByMbmBkmsnumberRefAndPorOrgacodeAndEmail(mbmBkmsnumberRef, porOrgacode, email);
}
public CustomerProfile fetchCustcodeBasedOnEmail(String porOrgacode, String email) {
return customerProfileRepository.findbyEmail(porOrgacode, email);
}
public void updateCustomerProfile(UpdateProfileRequestPayload updateProfileRequestPayload) {
customerProfileRepository.findById(new CustomerProfileId(updateProfileRequestPayload.getPorOrgacode(), updateProfileRequestPayload.getCmpCustcode()))
.ifPresent(customerProfile -> {
customerProfile.setCmpCustImage(updateProfileRequestPayload.getCmpCustImage());
customerProfileRepository.save(customerProfile);
});
}
public void addBeneficiary(Beneficiary beneficiary) {
Optional<Beneficiary> existing = beneficiaryRepository.findBeneficiaryByEmailAndPorOrgacodeAndMbmBkmsnumberRef(beneficiary.getEmail(),beneficiary.getPorOrgacode(), beneficiary.getMbmBkmsnumberRef());
if(existing.isPresent()){
throw new BenificiaryAlreadyExistsException();
}
beneficiaryRepository.save(beneficiary);
}
public List<Beneficiary> fetchBeneficiaryBasedOnEmail(String porOrgacode, String email) {
return beneficiaryRepository.findBeneficiariesByEmailAndPorOrgacode(email,porOrgacode);
}
}