all files / adal-ts2/src/ aad.redirect.processor.ts

100% Statements 19/19
62.5% Branches 5/8
100% Functions 3/3
100% Lines 19/19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24  1× 1× 1× 1×   1× 1× 1× 1×   1× 1× 1× 1× 1× 1× 1× 1×   1×   1×  
import { QueryStringDeserializer, hasAadProps } from './query.string.deserializer';
import { Constants } from './constants';
import { AadRedirectUrl } from './aad.redirect.url';
import { UserDecoder } from './user.decoder';
import { Storage } from './storage';
export class AadRedirectProcessor {
 
    constructor(private queryStringDeserializer: QueryStringDeserializer, private userDecoder: UserDecoder, private storage: Storage, private window: Window) {
    }
 
    public process(): boolean {
 
        let deserializedHash = this.queryStringDeserializer.deserialize(this.window.location.hash);
        let aadRedirect = new AadRedirectUrl(deserializedHash);
        Eif (aadRedirect.isAadRedirect()) {
            let userProfile = this.userDecoder.decode(aadRedirect.idToken || aadRedirect.accesToken);
            this.storage.setItem(Constants.STORAGE.IDTOKEN, aadRedirect.idToken || '');
            this.storage.setItem(Constants.STORAGE.ACCESSTOKEN, aadRedirect.accesToken || '');
            this.window.location.assign(this.storage.getItem(Constants.STORAGE.LOGIN_REQUEST));
        }
 
        return aadRedirect.isAadRedirect();
    }
}