package com.airlock.iam.oauth2.infrastructure.factory.rest;

import com.airlock.iam.base.api.domain.model.exception.ServiceConfigurationException;
import com.airlock.iam.oauth2.application.configuration.OAuth2AuthorizationServerConfigSpec;
import com.airlock.iam.oauth2.application.service.userinfo.OpenIDConnectUserInfoService;
import com.airlock.iam.oauth2.domain.service.reporting.OAuth2ReportingService;
import com.google.inject.Exposed;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;
import com.google.inject.servlet.RequestScoped;

public class OpenIdConnectUserInfoServiceModule extends PrivateModule {
   @Exposed
   @Provides
   @RequestScoped
   OpenIDConnectUserInfoService provideUserInfoService(OAuth2AuthorizationServerConfigSpec configSpec, OAuth2ReportingService reporting) {
      return ServiceConfigurationException.checkPresent(configSpec.openIdConnectUserInfoService(reporting), "UserInfo Endpoint not configured.");
   }

   protected void configure() {
   }
}
