//package parkup.configs;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import parkup.configs.email.EmailSender;
//import parkup.configs.email.EmailValidator;
//import parkup.configs.token.ConfirmationTokenW;
//import parkup.configs.token.ConfirmationTokenService;
//import parkup.entities.Vraboten;
//import parkup.services.VrabotenService;
//
//import javax.transaction.Transactional;
//import java.time.LocalDateTime;
//
//@Service
//public class RegistrationServiceW {
// private final VrabotenService vrabotenService;
// private final EmailValidator emailValidator;
// private final ConfirmationTokenService confirmationTokenService;
// private final EmailSender emailSender;
//
// @Autowired
// public RegistrationServiceW(VrabotenService vrabotenService, EmailValidator emailValidator,
// ConfirmationTokenService confirmationTokenService, EmailSender emailSender) {
// this.vrabotenService = vrabotenService;
// this.emailValidator = emailValidator;
// this.confirmationTokenService = confirmationTokenService;
// this.emailSender = emailSender;
// }
//
// public String register(RegistrationRequest request) {
// boolean isValidEmail = emailValidator.
// test(request.getEmail());
//
// if (!isValidEmail) {
// throw new IllegalStateException("email not valid");
// }
//
// String token = vrabotenService.signUpVraboten(
// new Vraboten(
// request.getFirstName(),
// request.getLastName(),
// request.getEmail(),
// request.getPassword(),
// request.getMobile()
// )
// );
//
// String link = "http://localhost:8080/vraboten/registration/confirm?token=" + token;
// emailSender.send(
// request.getEmail(),
// buildEmail(request.getFirstName(), link));
//
// return token;
// }
//
// @Transactional
// public String confirmToken(String token) {
// ConfirmationTokenW confirmationTokenW = confirmationTokenService
// .getTokenW(token)
// .orElseThrow(() ->
// new IllegalStateException("token not found"));
//
// if (confirmationTokenW.getConfirmedAt() != null) {
// throw new IllegalStateException("email already confirmed");
// }
//
// LocalDateTime expiredAt = confirmationTokenW.getExpiresAt();
//
// if (expiredAt.isBefore(LocalDateTime.now())) {
// throw new IllegalStateException("token expired");
// }
//
// confirmationTokenService.setConfirmedAtW(token);
//
// vrabotenService.enableVraboten(confirmationTokenW.getRegistriranParkirac().getEmail());
// return "confirmed";
// }
//
// private String buildEmail(String name, String link) {
// return "
\n" +
// "\n" +
// "
\n" +
// "\n" +
// "
\n" +
// " \n" +
// " \n" +
// " \n" +
// " \n" +
// " \n" +
// " \n" +
// " \n" +
// " \n" +
// " \n" +
// " \n" +
// " | \n" +
// " \n" +
// " Confirm your email\n" +
// " | \n" +
// " \n" +
// " \n" +
// " \n" +
// " | \n" +
// " \n" +
// " \n" +
// " \n" +
// " | \n" +
// "
\n" +
// "
\n" +
// "
\n" +
// " \n" +
// " | \n" +
// " \n" +
// " \n" +
// " \n" +
// " \n" +
// " | \n" +
// " \n" +
// " \n" +
// " \n" +
// " | \n" +
// " | \n" +
// "
\n" +
// "
\n" +
// "\n" +
// "\n" +
// "\n" +
// "
\n" +
// " \n" +
// "
| \n" +
// "
\n" +
// " \n" +
// "
| \n" +
// " \n" +
// " \n" +
// " Hi " + name + ", Thank you for registering. Please click on the below link to activate your account: Activate Now \n Link will expire in 15 minutes. See you soon " +
// " \n" +
// " | \n" +
// "
| \n" +
// "
\n" +
// " \n" +
// "
| \n" +
// "
\n" +
// "
\n" +
// "\n" +
// "
";
// }
//}