EmailServiceImpl.java
package com.ctrlbuy.webshop.service.impl;
import com.ctrlbuy.webshop.model.Order;
import com.ctrlbuy.webshop.security.entity.User;
import com.ctrlbuy.webshop.service.EmailService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
@Service
public class EmailServiceImpl implements EmailService {
private static final Logger logger = LoggerFactory.getLogger(EmailServiceImpl.class);
@Override
public void sendVerificationEmail(User user, String token) {
sendVerificationEmail(user.getEmail(), token, user.getFirstName());
}
@Override
public void sendVerificationEmail(String email, String token, String firstName) {
String verificationUrl = "http://localhost:8080/verify?token=" + token;
logger.info("📧 =========================");
logger.info("📧 EMAIL-VERIFIERING");
logger.info("📧 =========================");
logger.info("📧 Till: {} ({})", email, firstName);
logger.info("📧 Verifierings-länk: {}", verificationUrl);
logger.info("📧 =========================");
logger.info("✅ Verifieringsmail simulerat skickat till: {}", email);
}
@Override
public boolean sendVerificationEmail(String email, String token) {
try {
sendVerificationEmail(email, token, "Användare");
return true;
} catch (Exception e) {
logger.error("Fel vid skickande av verifieringsmail", e);
return false;
}
}
@Override
public void sendWelcomeEmail(User user) {
logger.info("📧 Välkomstmail simulerat skickat till: {} ({})",
user.getEmail(), user.getFirstName());
}
@Override
public void sendPasswordResetEmail(User user, String resetToken) {
sendPasswordResetEmail(user.getEmail(), resetToken, user.getFirstName());
}
@Override
public void sendPasswordResetEmail(String email, String resetToken, String firstName) {
String resetUrl = "http://localhost:8080/reset-password?token=" + resetToken;
logger.info("📧 =========================");
logger.info("📧 LÖSENORDSÅTERSTÄLLNING");
logger.info("📧 =========================");
logger.info("📧 Till: {} ({})", email, firstName);
logger.info("📧 Reset-länk: {}", resetUrl);
logger.info("📧 Token: {}", resetToken);
logger.info("📧 =========================");
logger.info("📧 KOPIERA LÄNKEN OVAN FÖR ATT TESTA!");
logger.info("📧 =========================");
logger.info("✅ Reset-mail simulerat skickat till: {}", email);
}
@Override
public boolean sendPasswordResetEmail(String email, String resetToken) {
try {
sendPasswordResetEmail(email, resetToken, "Användare");
return true;
} catch (Exception e) {
logger.error("Fel vid skickande av reset-mail", e);
return false;
}
}
@Override
public void sendOrderConfirmationEmail(User user, String orderNumber) {
logger.info("📧 Orderbekräftelse simulerat skickat till: {} för order: {}",
user.getEmail(), orderNumber);
}
@Override
public void sendOrderConfirmation(Order order, String email) {
logger.info("📧 Orderbekräftelse simulerat skickat till: {} för order: {}",
email, order.getOrderNumber());
}
@Override
public boolean sendOrderConfirmation(String email, Order order) {
try {
sendOrderConfirmation(order, email);
return true;
} catch (Exception e) {
logger.error("Fel vid skickande av orderbekräftelse", e);
return false;
}
}
@Override
public void sendAccountDeletionNotification(User deletedUser, String adminUsername, String reason) {
logger.info("📧 Kontoborttagning-meddelande simulerat skickat till: {} av admin: {} (skäl: {})",
deletedUser.getEmail(), adminUsername, reason);
}
@Override
public void sendAccountDeactivationNotification(User deactivatedUser, String adminUsername, String reason) {
logger.info("📧 Kontodeaktivering-meddelande simulerat skickat till: {} av admin: {} (skäl: {})",
deactivatedUser.getEmail(), adminUsername, reason);
}
@Override
public void sendAccountReactivationNotification(User reactivatedUser, String adminUsername) {
logger.info("📧 Kontoaktivering-meddelande simulerat skickat till: {} av admin: {}",
reactivatedUser.getEmail(), adminUsername);
}
@Override
public boolean testEmailConnection() {
logger.info("📧 Email-anslutning testad (simulerad)");
return true; // Simulerar framgångsrik test
}
@Override
public boolean isConfigured() {
logger.info("📧 Email-tjänst är konfigurerad (simulerad)");
return true; // Simulerar att email är konfigurerat
}
}