package com.airlock.iam.oauth2.domain.model.logoutaction;

import com.airlock.iam.common.domain.model.logoutaction.LogoutAction;
import com.airlock.iam.oauth2.domain.service.OpenIdConnectOpuasCookieService;
import jakarta.inject.Inject;
import jakarta.inject.Provider;

public final class RemoveOpuasCookieLogoutAction implements LogoutAction {
   private final Provider<OpenIdConnectOpuasCookieService> service;

   @Inject
   public RemoveOpuasCookieLogoutAction(Provider<OpenIdConnectOpuasCookieService> service) {
      this.service = service;
   }

   @Override
   public boolean isApplicable() {
      return ((OpenIdConnectOpuasCookieService)this.service.get()).hasOpuasCookieInSession();
   }

   @Override
   public void execute() {
      ((OpenIdConnectOpuasCookieService)this.service.get()).removeOpuasCookie();
   }
}
