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

import com.airlock.iam.oauth2.domain.model.client.OAuth2Client;
import com.airlock.iam.oauth2.domain.model.client.OAuth2ClientLoader;
import com.airlock.iam.oauth2.domain.model.codegrant.OAuth2AuthorizationCodeGrantFlowSessionAttribute;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

public class OAuth2ConsentClientProviderImpl implements OAuth2ConsentClientProvider {
   private final OAuth2AuthorizationCodeGrantFlowSessionAttribute sessionAttribute;
   private final OAuth2ClientLoader clientLoader;

   @Override
   public OAuth2Client provide() {
      return this.clientLoader.loadClient(this.sessionAttribute.request().clientId());
   }

   @SuppressFBWarnings(justification = "generated code")
   public OAuth2ConsentClientProviderImpl(OAuth2AuthorizationCodeGrantFlowSessionAttribute sessionAttribute, OAuth2ClientLoader clientLoader) {
      this.sessionAttribute = sessionAttribute;
      this.clientLoader = clientLoader;
   }
}
