package com.airlock.iam.login.rest.infrastructure.service;

import com.airlock.iam.log.IntegrationLogger;
import com.airlock.iam.oauth2.application.configuration.OAuth2AuthorizationServerConfigSpec;
import com.airlock.iam.oauth2.domain.model.logger.IntegrationLoggerFactory;
import jakarta.inject.Inject;
import jakarta.inject.Provider;

public final class OAuth2IntegrationLoggerFactoryImpl implements IntegrationLoggerFactory {
   private final Provider<OAuth2AuthorizationServerConfigSpec> config;

   @Inject
   public OAuth2IntegrationLoggerFactoryImpl(Provider<OAuth2AuthorizationServerConfigSpec> config) {
      this.config = config;
   }

   public IntegrationLogger create(Class<?> clazz) {
      return IntegrationLogger.getLogger(clazz, ((OAuth2AuthorizationServerConfigSpec)this.config.get()).isIntegrationLogEnabled());
   }
}
