package com.airlock.iam.authentication.infrastructure.factory;

import com.airlock.iam.authentication.application.configuration.secretquestions.SecretQuestionsProvisioningStepConfig;
import com.airlock.iam.authentication.domain.service.secretquestions.SecretQuestionAnswerValidator;
import com.airlock.iam.authentication.domain.service.secretquestions.SecretQuestionAnswerValidatorImpl;
import com.airlock.iam.base.api.infrastructure.plugin.ModuleForConfig;
import com.airlock.iam.common.application.configuration.secretquestion.GeneralSecretQuestionsSettings;
import com.google.inject.Exposed;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;

@ModuleForConfig(SecretQuestionsProvisioningStepConfig.class)
public class SecretQuestionsProvisioningStepModule extends PrivateModule {
   @Exposed
   @Provides
   GeneralSecretQuestionsSettings provideSecretQuestionsSettings(SecretQuestionsProvisioningStepConfig stepConfig) {
      return stepConfig.getSecretQuestionsSettings();
   }

   protected void configure() {
      this.bind(SecretQuestionAnswerValidator.class).to(SecretQuestionAnswerValidatorImpl.class);
      this.expose(SecretQuestionAnswerValidator.class);
   }
}
