package com.bizofficer.subscription.registration;


import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.crossstore.ChangeSetPersister.NotFoundException;
import org.springframework.stereotype.Service;

import com.bizofficer.hibernate.entity.SubscriptionOtp;
import com.bizofficer.hibernate.repository.PgprepStudentDetailsRepository;
import com.bizofficer.hibernate.repository.SubscriptionOtpRepository;


@Service
public class VerifyOtpService{
	
	private static final Logger logger = Logger.getLogger(VerifyOtpService.class);
	
	@Autowired
	private SubscriptionOtpRepository subsRepo;

	@Autowired
	PgprepStudentDetailsRepository stRepoObj;
	
	public Object execute(Object obj) throws NotFoundException{
		AaRegBean objBean = (AaRegBean) obj; 	
		RegistrationResponseBean responseBeanObj = new RegistrationResponseBean();
		
		try {
				logger.info("Token: "+objBean.getToken() );
				logger.info("Otp Number: "+objBean.getOtpNumber() );
			
				responseBeanObj.setResponseTxt("failed");
				
				if(objBean.getOtpNumber()==null || objBean.getToken()==null) {
					return responseBeanObj;
				}
			

				SubscriptionOtp subsOtpObj = subsRepo.findByOtpKeyAndOtpVal(objBean.getToken(),objBean.getOtpNumber());
				
				logger.info("subsOtpObj: "+subsOtpObj );
				
				if(subsOtpObj!=null && subsOtpObj.getId()!=null && subsOtpObj.getId()>0) {
					
					responseBeanObj.setResponseTxt("OK"); 
					
				}else {
					responseBeanObj.setResponseTxt("InvalidOTP"); 
				}
				
				logger.info("ResponseTxt: "+responseBeanObj.getResponseTxt() );

		}catch(Exception e) {
			e.getStackTrace();			
		}
		
		
		return responseBeanObj;
	}
	
	
	
	
}
