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

import com.airlock.iam.authentication.infrastructure.service.ui.LogoutDisclaimerSkipService;
import com.airlock.iam.base.api.infrastructure.plugin.ModuleForConfig;
import com.airlock.iam.flow.ui.application.configuration.ShowLogoutDisclaimerPageConfig;
import com.google.inject.Exposed;
import com.google.inject.PrivateModule;
import com.google.inject.Provides;
import jakarta.servlet.http.HttpServletRequest;
import java.util.Optional;

@ModuleForConfig(ShowLogoutDisclaimerPageConfig.class)
public class ShowLogoutDisclaimerPageModule extends PrivateModule {
   @Exposed
   @Provides
   Optional<LogoutDisclaimerSkipService.SkipDisclaimerQueryParameter> skipLogoutDisclaimer(HttpServletRequest request) {
      boolean skip = Boolean.parseBoolean(request.getParameter("skipDisclaimer"));
      return skip ? Optional.of(new LogoutDisclaimerSkipService.SkipDisclaimerQueryParameter()) : Optional.empty();
   }

   protected void configure() {
      this.bind(LogoutDisclaimerSkipService.class);
      this.expose(LogoutDisclaimerSkipService.class);
   }
}
