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

import com.airlock.iam.common.domain.service.SingleRequestPerUserService;
import com.airlock.iam.flow.shared.domain.model.session.SingleUserLock;
import com.airlock.iam.flow.shared.domain.service.user.SingleRequestPerUserServiceImpl;
import com.google.inject.Exposed;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;
import com.google.inject.servlet.RequestScoped;

public final class SingleRequestPerUserServiceModule extends PrivateModule {
   @Provides
   @RequestScoped
   @Exposed
   SingleUserLock provideSingleUserLock() {
      return new SingleUserLock();
   }

   protected void configure() {
      this.bind(SingleRequestPerUserService.class).to(SingleRequestPerUserServiceImpl.class).in(RequestScoped.class);
      this.expose(SingleRequestPerUserService.class);
   }
}
