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

import com.airlock.iam.base.api.domain.model.plugin.LogicForConfig;
import com.airlock.iam.flow.api.domain.model.flow.FlowResult;
import com.airlock.iam.flow.api.domain.model.session.FlowAttributeRepository;
import com.airlock.iam.oauth2.application.configuration.OpenIdConnectSsoTicketLoginHintFlowConfig;
import jakarta.inject.Inject;

@LogicForConfig(OpenIdConnectSsoTicketLoginHintFlowConfig.class)
public final class OpenIdConnectSsoTicketLoginHintFlowHandler implements OpenIdConnectLoginHintFlowHandler {
   private final FlowAttributeRepository repository;

   @Inject
   public OpenIdConnectSsoTicketLoginHintFlowHandler(FlowAttributeRepository repository) {
      this.repository = repository;
   }

   @Override
   public void beforeAccess(OpenIdConnectLoginHint loginHint) {
      this.repository.putOrMergeAttribute(new OpenIdConnectSsoTicketLoginHintFlowAttribute(loginHint));
   }

   @Override
   public void afterAccess(FlowResult flowResult, OpenIdConnectLoginHint loginHint) {
   }
}
