All files / src/auth AuthResolverFactory.ts

95.83% Statements 23/24
92.86% Branches 13/14
100% Functions 1/1
95.83% Lines 23/24
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      1x 1x 1x 1x 1x 1x 1x 1x   1x     27x 3x     24x 3x     21x 6x     15x 3x     12x 3x     9x 3x     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';
 
export class AuthResolverFactory {
  public static resolve(siteUrl: string, options: IAuthOptions): IAuthResolver {
 
    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');
 
  }
}