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

import com.airlock.iam.base.api.infrastructure.uri.ExternalUriInfo;
import com.airlock.iam.common.infrastructure.factory.uriinfo.BaseUriDerivation;
import com.airlock.iam.common.infrastructure.factory.uriinfo.ExternalLinkCreation;
import com.airlock.iam.common.infrastructure.factory.uriinfo.ExternalUriInfoFactory;
import com.google.inject.Exposed;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;
import com.google.inject.servlet.RequestScoped;

public final class TransactionApprovalExternalUriInfoModule extends PrivateModule {
   @Provides
   @RequestScoped
   @Exposed
   ExternalUriInfo provideExternalUriInfo(ExternalUriInfoFactory factory) {
      return factory.getExternalUriInfo();
   }

   protected void configure() {
      this.bind(ExternalLinkCreation.class).toInstance((ExternalLinkCreation)(externalUriInfo, uriInfo) -> false);
      this.bind(BaseUriDerivation.class).toInstance((BaseUriDerivation)baseUri -> baseUri);
   }
}
