package com.airlock.iam.publicselfservice.infrastructure.factory.shared;

import com.airlock.iam.publicselfservice.application.configuration.PublicSelfServiceFlowsConfig;
import com.airlock.iam.publicselfservice.application.configuration.flow.PublicSelfServiceSettings;
import com.google.inject.Exposed;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;
import com.google.inject.servlet.RequestScoped;
import java.util.Optional;

public class PublicSelfServiceSettingsModule extends PrivateModule {
   @Exposed
   @Provides
   @RequestScoped
   PublicSelfServiceSettings providePublicSelfServiceSettings(PublicSelfServiceFlowsConfig config) {
      return new PublicSelfServiceSettings(config.getMaxFailedAttempts(), Optional.ofNullable(config.getMaxNumberOfUnlocks()));
   }

   protected void configure() {
   }
}
