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

import com.airlock.iam.common.domain.model.response.CacheControlResponseHeader;
import com.airlock.iam.common.infrastructure.response.CacheControlResponseHeaderService;
import com.airlock.iam.common.infrastructure.response.CacheControlResponseHeaderServiceImpl;
import com.airlock.iam.oauth2.application.configuration.OAuth2AuthorizationServerConfigSpec;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;
import com.google.inject.servlet.RequestScoped;

public final class CacheControlResponseHeaderServiceModule extends PrivateModule {
   @Provides
   @RequestScoped
   CacheControlResponseHeader provideCacheControlResponseHeader(OAuth2AuthorizationServerConfigSpec configSpec) {
      return new CacheControlResponseHeader(configSpec.getCacheControlResponseHeader());
   }

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