package com.airlock.iam.oauth2.application.service.validation;

import com.airlock.iam.oauth2.api.domain.model.AuthorizationServerId;
import com.airlock.iam.oauth2.application.configuration.OAuth2AsConfigsSpec;
import jakarta.inject.Inject;
import java.util.Optional;

public final class ExistingAuthServerServiceImpl implements ExistingAuthServerService {
   private final Optional<OAuth2AsConfigsSpec> asConfigs;

   @Inject
   public ExistingAuthServerServiceImpl(Optional<OAuth2AsConfigsSpec> asConfigs) {
      this.asConfigs = asConfigs;
   }

   @Override
   public boolean isAuthorizationServerConfigured(String authorizationServerId) {
      AuthorizationServerId asID = AuthorizationServerId.authorizationServerId(authorizationServerId);
      return this.asConfigs.flatMap(s -> s.findOAuth2AuthorizationServerConfigSpec(asID)).isPresent();
   }
}
