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

import com.airlock.iam.base.api.infrastructure.plugin.ModuleForConfig;
import com.airlock.iam.core.misc.persistency.token.TokenDataProvider;
import com.airlock.iam.flow.shared.application.configuration.condition.VascoActivationPossibleConditionConfig;
import com.airlock.iam.flow.shared.domain.service.vasco.VascoOtpDeviceRepository;
import com.airlock.iam.flow.shared.domain.service.vasco.VascoOtpDeviceRepositoryImpl;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;

@ModuleForConfig(VascoActivationPossibleConditionConfig.class)
public final class VascoActivationPossibleConditionModule extends PrivateModule {
   @Provides
   TokenDataProvider provideTokenDataProvider(VascoActivationPossibleConditionConfig config) {
      return config.getTokenDataProvider();
   }

   protected void configure() {
      this.bind(VascoOtpDeviceRepository.class).to(VascoOtpDeviceRepositoryImpl.class);
      this.expose(VascoOtpDeviceRepository.class);
   }
}
