package com.airlock.iam.oauth2.infrastructure.service.oidc;

import com.airlock.iam.common.domain.model.request.ContextPath;
import com.airlock.iam.oauth2.domain.service.OpenIdConnectOpuasCookieService;
import com.airlock.iam.oauth2.infrastructure.provider.OpenIDConnectOpuasCookieWriter;
import jakarta.inject.Inject;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public final class OpenIdConnectOpuasCookieServiceImpl implements OpenIdConnectOpuasCookieService {
   private final HttpServletRequest request;
   private final HttpServletResponse response;
   private final ContextPath contextPath;

   @Inject
   public OpenIdConnectOpuasCookieServiceImpl(HttpServletRequest request, HttpServletResponse response, ContextPath contextPath) {
      this.request = request;
      this.response = response;
      this.contextPath = contextPath;
   }

   @Override
   public boolean hasOpuasCookieInSession() {
      return OpenIDConnectOpuasCookieWriter.requestContainsOpuasCookie(this.request);
   }

   @Override
   public void removeOpuasCookie() {
      OpenIDConnectOpuasCookieWriter.removeOpuasCookie(this.response, this.contextPath);
   }
}
