From 616c0b6b1ae898af37b6477c456b21049144d8b2 Mon Sep 17 00:00:00 2001
From: riorio805 <sefrianojieftara@gmail.com>
Date: Wed, 26 Feb 2025 17:46:32 +0700
Subject: [PATCH] [REFACTOR] Replace multiple duplicated strings with a
 constant variable Prevent change propagation by only changing in a single
 place to increase maintainability

---
 .../authentication/service/AuthenticationService.java      | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/safetypin/authentication/service/AuthenticationService.java b/src/main/java/com/safetypin/authentication/service/AuthenticationService.java
index 5b92625..0af2bed 100644
--- a/src/main/java/com/safetypin/authentication/service/AuthenticationService.java
+++ b/src/main/java/com/safetypin/authentication/service/AuthenticationService.java
@@ -15,6 +15,7 @@ import java.time.Period;
 
 @Service
 public class AuthenticationService {
+    private static final String EMAIL_PROVIDER = "EMAIL";
 
     private final UserRepository userRepository;
     private final PasswordEncoder passwordEncoder;
@@ -37,7 +38,7 @@ public class AuthenticationService {
         }
         String encodedPassword = passwordEncoder.encode(request.getPassword());
         User user = new User(request.getEmail(), encodedPassword, request.getName(), false, "USER",
-                request.getBirthdate(), "EMAIL", null);
+                request.getBirthdate(), EMAIL_PROVIDER, null);
         user = userRepository.save(user);
         otpService.generateOTP(request.getEmail());
         logger.info("OTP generated for {} at {}", request.getEmail(), java.time.LocalDateTime.now());
@@ -51,7 +52,7 @@ public class AuthenticationService {
         }
         User existing = userRepository.findByEmail(request.getEmail());
         if (existing != null) {
-            if ("EMAIL".equals(existing.getProvider())) {
+            if (EMAIL_PROVIDER.equals(existing.getProvider())) {
                 throw new IllegalArgumentException("An account with this email exists. Please sign in using your email and password.");
             }
             return existing;
@@ -109,7 +110,7 @@ public class AuthenticationService {
     // Forgot password – only applicable for email-registered users
     public void forgotPassword(String email) {
         User user = userRepository.findByEmail(email);
-        if (user == null || !"EMAIL".equals(user.getProvider())) {
+        if (user == null || !EMAIL_PROVIDER.equals(user.getProvider())) {
             throw new IllegalArgumentException("Password reset is only available for email-registered users.");
         }
         // In production, send a reset token via email.
-- 
GitLab