I have written a code for verification through email by sending otp. I have to configure in such a way that if the user enters the otp after 4 hours it should not be accepted. I have used date object with if conditions and it works fine but is there any way to achieve same in less coding.
Date dateFromDatabase=emailData.getBody().getUpdated();
if((dateFromDatabase.getYear()-date.getYear())==0){
if((dateFromDatabase.getMonth()-date.getMonth())==0){
if((dateFromDatabase.getDay()-date.getDay())==0){
if((dateFromDatabase.getHours()-date.getHours())<=4){
System.out.print("May Be Right otp");
if( emailData.getBody().getHASHCODE().equals(fromotp)){
System.out.print("matched");
emails.setId(emailData.getBody().getId());
emails .setVERIFIED(1);
emails.setHASHCODE("");
emails.setEmails(To);
//updateEmails(emails);
String Subject="Pharmerz Thanknote";
String Acknowledge="Thank you for verifying on Pharmerz";
email.SendMail(To,Subject,Acknowledge);
Emails saveEmails =emailService.create( emails );
return new ResponseEntity<Emails>(emails,HttpStatus.OK);
}else{
System.out.print("miss matched");
emailService.delete(emailData.getBody().getId());
return new ResponseEntity<Emails>(HttpStatus.BAD_REQUEST);
}
}else{
System.out.print("Wrong or Old Otp");
emailService.delete(emailData.getBody().getId());
return new ResponseEntity<Emails>(HttpStatus.BAD_REQUEST);
}
}else{
System.out.print("Wrong or Old Otp");
emailService.delete(emailData.getBody().getId());
return new ResponseEntity<Emails>(HttpStatus.BAD_REQUEST);
}
}else{
System.out.print("Wrong or Old Otp");
emailService.delete(emailData.getBody().getId());
return new ResponseEntity<Emails>(HttpStatus.BAD_REQUEST);
}
}
else{
System.out.print("Wrong or Old Otp");
emailService.delete(emailData.getBody().getId());
return new ResponseEntity<Emails>(HttpStatus.BAD_REQUEST);
}