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

import com.airlock.iam.flow.api.domain.model.session.FlowAttributeRepository;
import com.airlock.iam.techclientreg.api.domain.model.request.RequestCredential;
import com.airlock.iam.techclientreg.domain.model.flow.RequestCredentialFlowAttribute;
import com.google.inject.Exposed;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;
import java.util.Optional;

public class RequestCredentialModule extends PrivateModule {
   @Provides
   @Exposed
   Optional<RequestCredential> provideRequestCredential(FlowAttributeRepository flowAttributes) {
      return flowAttributes.tryGetAttribute(RequestCredentialFlowAttribute.class).map(RequestCredentialFlowAttribute::getCredential);
   }

   protected void configure() {
   }
}
