package com.airlock.iam.factor.domain.service.airlock2fa;

import com.airlock.iam.elog.api.ELogger;
import com.airlock.iam.elog.api.LogTypes;
import com.airlock.iam.factor.application.configuration.airlock2fa.FuturaeServerConfig;
import java.util.ArrayList;
import java.util.List;

public final class FuturaeServerDummyPropertyWarner {
   private FuturaeServerDummyPropertyWarner() {
   }

   public static void warnAboutDummies(FuturaeServerConfig serverConfig, ELogger logger) {
      List<String> dummies = new ArrayList<>();
      if ("00000000-0000-0000-0000-000000000000".equals(serverConfig.getServiceId())) {
         dummies.add("Service ID");
      }

      if ("change-me".equals(serverConfig.getAdminApiKey())) {
         dummies.add("Admin API Key");
      }

      if ("change-me".equals(serverConfig.getAuthApiKey())) {
         dummies.add("Auth API Key");
      }

      if (!dummies.isEmpty()) {
         String dummyNames = String.join(", ", dummies);
         String message = String.format(
            "Plugin '%s' contains dummy values that must be changed for Airlock 2FA to work properly. Affected properties: %s", "Futurae Server", dummyNames
         );
         logger.warn(LogTypes.CONFIGURATION_ERROR, message);
      }
   }
}
