import { AuthConfig } from 'angular-oauth2-oidc';
import {AppConfig} from './app.config';

export interface IAuthconfigFactory {
    getAuthConfig(appConfig: AppConfig): AuthConfig;
}

export class AuthConfigFactory implements IAuthconfigFactory {
    getAuthConfig(appConfig: AppConfig): AuthConfig {
      const authConfig: AuthConfig = new AuthConfig();
      authConfig.issuer = appConfig.getConfig("issuer");
      authConfig.redirectUri = window.location.origin + "/cb";
      authConfig.silentRefreshRedirectUri = window.location.origin + "/silent-refresh.html";
      authConfig.clientId = appConfig.getConfig("clientId");
      authConfig.customQueryParams = { audience: appConfig.getConfig("audience") };
      authConfig.scope = "openid profile email";
      authConfig.oidc = true;
      authConfig.disableAtHashCheck = true;
      authConfig.requireHttps = appConfig.getConfig("requireHttps");
      return authConfig;
    }
  }