package com.airlock.iam.saml2.infrastructure.service.idp;

import com.airlock.iam.common.application.service.session.AirlockControlCookieService;
import com.airlock.iam.common.domain.service.SessionService;
import jakarta.inject.Inject;
import jakarta.inject.Provider;

public final class Saml2SessionTerminationServiceImpl implements Saml2SessionTerminationService {
   private final Provider<AirlockControlCookieService> controlCookieService;
   private final Provider<SessionService> sessionService;

   @Inject
   public Saml2SessionTerminationServiceImpl(Provider<AirlockControlCookieService> controlCookieService, Provider<SessionService> sessionService) {
      this.controlCookieService = controlCookieService;
      this.sessionService = sessionService;
   }

   @Override
   public void terminateSessionsUsingClear() {
      ((AirlockControlCookieService)this.controlCookieService.get()).clearAirlockSession();
      ((SessionService)this.sessionService.get()).terminateSessionAtEndOfRestRequest();
   }
}
