All files / src/auth AuthResolverFactory.ts

96.3% Statements 26/27
93.75% Branches 15/16
100% Functions 1/1
96.3% Lines 26/27
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52    1x 1x 1x 1x 1x 1x 1x 1x 1x   1x     45x 9x     36x 3x     33x 6x     27x 9x     18x 3x     15x 3x     12x 6x     6x 6x              
import { IAuthOptions } from './IAuthOptions';
import { IAuthResolver } from './IAuthResolver';
import { OnpremiseFbaCredentials } from './resolvers/OnpremiseFbaCredentials';
import { OnpremiseUserCredentials } from './resolvers/OnpremiseUserCredentials';
import { OnlineUserCredentials } from './resolvers/OnlineUserCredentials';
import { OnlineAddinOnly } from './resolvers/OnlineAddinOnly';
import { OnpremiseAddinOnly } from './resolvers/OnpremiseAddinOnly';
import { AdfsCredentials } from './resolvers/AdfsCredentials';
import { OnDemand } from './resolvers/ondemand/OnDemand';
import * as authOptions from './IAuthOptions';
import { FileConfig } from './resolvers/FileConfig';
 
export class AuthResolverFactory {
  public static resolve(siteUrl: string, options?: IAuthOptions): IAuthResolver {
 
    if (!options) {
      return new FileConfig(siteUrl);
    }
 
    if (authOptions.isFbaCredentialsOnpremise(siteUrl, options)) {
      return new OnpremiseFbaCredentials(siteUrl, options);
    }
 
    if (authOptions.isUserCredentialsOnpremise(siteUrl, options)) {
      return new OnpremiseUserCredentials(siteUrl, options);
    }
 
    if (authOptions.isUserCredentialsOnline(siteUrl, options)) {
      return new OnlineUserCredentials(siteUrl, options);
    }
 
    if (authOptions.isAddinOnlyOnline(options)) {
      return new OnlineAddinOnly(siteUrl, options);
    }
 
    if (authOptions.isAddinOnlyOnpremise(options)) {
      return new OnpremiseAddinOnly(siteUrl, options);
    }
 
    if (authOptions.isAdfsCredentials(options)) {
      return new AdfsCredentials(siteUrl, options);
    }
 
    Eif (authOptions.isOndemandCredentials(options)) {
      return new OnDemand(siteUrl, options);
    }
 
    throw new Error('Error while resolving authentication class');
 
  }
}