kipon-xrmservice
Version:
Dynamics 365 CE web api wrapper for angular, making life easier when building angular based web resources
65 lines • 9.03 kB
JavaScript
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "./xrmconfig.service";
import * as i2 from "./xrm.service";
export class XrmAuthService {
constructor(xrmConfigService, xrmService) {
this.xrmConfigService = xrmConfigService;
this.xrmService = xrmService;
}
authenticate() {
if (window["AuthenticationContext"] == null) {
throw "You must load adal.js to the page header scripts.";
}
this.authConfig = this.xrmConfigService.getConfig();
let authCtx = new window["AuthenticationContext"](this.authConfig);
let isCallback = authCtx.isCallback(window.location.hash);
if (isCallback) {
authCtx.handleWindowCallback();
}
var loginError = authCtx.getLoginError();
if (!loginError && isCallback) {
var x = Observable.create((_obs) => {
this.obs = _obs;
});
setTimeout(() => {
authCtx.acquireToken(this.authConfig.endpoints.orgUri, this.getToken);
}, 1);
return x;
}
if (loginError) {
throw loginError;
}
if (!isCallback) {
let user = authCtx.getCachedUser();
if (user == null) {
authCtx.login();
}
else {
console.log(user);
}
}
return Observable.create((obs) => {
setTimeout(() => {
obs.next(true);
});
});
}
getToken(error, token) {
if (error) {
console.log(error);
}
if (this.xrmService.debug) {
console.log(token);
}
this.xrmService.token = token;
this.obs.next(true);
}
}
XrmAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: XrmAuthService, deps: [{ token: i1.XrmConfigService }, { token: i2.XrmService }], target: i0.ɵɵFactoryTarget.Injectable });
XrmAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: XrmAuthService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: XrmAuthService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.XrmConfigService }, { type: i2.XrmService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMva2lwb24teHJtc2VydmljZS9zcmMvbGliL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUF3Q2xDLE1BQU0sT0FBTyxjQUFjO0lBSXZCLFlBQW9CLGdCQUFrQyxFQUFVLFVBQXNCO1FBQWxFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUssQ0FBQztJQUU1RixZQUFZO1FBQ1IsSUFBSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDekMsTUFBTSxtREFBbUQsQ0FBQztTQUM3RDtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRXBELElBQUksT0FBTyxHQUFHLElBQUksTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBZ0IsQ0FBQztRQUNsRixJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUQsSUFBSSxVQUFVLEVBQUU7WUFDWixPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUNsQztRQUVELElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVUsRUFBRTtZQUM3QixJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUSxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxDQUFDO1lBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ04sT0FBTyxDQUFDLENBQUM7U0FDWjtRQUVELElBQUksVUFBVSxFQUFFO1lBQ1osTUFBTSxVQUFVLENBQUM7U0FDcEI7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25DLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtnQkFDZCxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDbkI7aUJBQU07Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQjtTQUNKO1FBRUQsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBTyxFQUFFLEVBQUU7WUFDakMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ3pDLElBQUksS0FBSyxFQUFFO1lBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0QjtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUU7WUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDOzsyR0EvRFEsY0FBYzsrR0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBYcm1TZXJ2aWNlIH0gZnJvbSAnLi94cm0uc2VydmljZSc7XHJcbmltcG9ydCB7IFhybUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL3hybWNvbmZpZy5zZXJ2aWNlJztcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhVc2VyUHJvZmlsZSB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFVzZXIge1xyXG4gICAgcHJvZmlsZTogQXV0aFVzZXJQcm9maWxlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhDb250ZXh0IHtcclxuICAgIGlzQ2FsbGJhY2soaGFzaDogc3RyaW5nKTogYm9vbGVhbjtcclxuICAgIGhhbmRsZVdpbmRvd0NhbGxiYWNrKCk6IHZvaWQ7XHJcbiAgICBnZXRMb2dpbkVycm9yKCk6IHN0cmluZztcclxuICAgIGdldENhY2hlZFVzZXIoKTogQXV0aFVzZXI7XHJcbiAgICBsb2dpbigpOiB2b2lkO1xyXG4gICAgbG9nT3V0KCk6IHZvaWQ7XHJcbiAgICBhY3F1aXJlVG9rZW4odXJsOiBzdHJpbmcsIGNhbGxiYWNrOiBhbnkpOiB2b2lkO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXRoQ29uZmlnRW5kcG9pbnQge1xyXG4gICAgb3JnVXJpOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXV0aENvbmZpZyB7XHJcbiAgICB0ZW5hbnQ6IHN0cmluZztcclxuICAgIGNsaWVudElkOiBzdHJpbmc7XHJcbiAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IHN0cmluZztcclxuICAgIGVuZHBvaW50czogQXV0aENvbmZpZ0VuZHBvaW50O1xyXG4gICAgY2FjaGVMb2NhdGlvbjogc3RyaW5nO1xyXG4gICAgdmVyc2lvbjogc3RyaW5nO1xyXG59XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgWHJtQXV0aFNlcnZpY2Uge1xyXG4gIGF1dGhDb25maWc6IEF1dGhDb25maWc7XHJcbiAgb2JzOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB4cm1Db25maWdTZXJ2aWNlOiBYcm1Db25maWdTZXJ2aWNlLCBwcml2YXRlIHhybVNlcnZpY2U6IFhybVNlcnZpY2UgKSB7IH1cclxuXHJcbiAgICBhdXRoZW50aWNhdGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgaWYgKHdpbmRvd1tcIkF1dGhlbnRpY2F0aW9uQ29udGV4dFwiXSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRocm93IFwiWW91IG11c3QgbG9hZCBhZGFsLmpzIHRvIHRoZSBwYWdlIGhlYWRlciBzY3JpcHRzLlwiO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hdXRoQ29uZmlnID0gdGhpcy54cm1Db25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xyXG5cclxuICAgICAgICBsZXQgYXV0aEN0eCA9IG5ldyB3aW5kb3dbXCJBdXRoZW50aWNhdGlvbkNvbnRleHRcIl0odGhpcy5hdXRoQ29uZmlnKSBhcyBBdXRoQ29udGV4dDtcclxuICAgICAgICBsZXQgaXNDYWxsYmFjayA9IGF1dGhDdHguaXNDYWxsYmFjayh3aW5kb3cubG9jYXRpb24uaGFzaCk7XHJcblxyXG4gICAgICAgIGlmIChpc0NhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgIGF1dGhDdHguaGFuZGxlV2luZG93Q2FsbGJhY2soKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBsb2dpbkVycm9yID0gYXV0aEN0eC5nZXRMb2dpbkVycm9yKCk7XHJcblxyXG4gICAgICAgIGlmICghbG9naW5FcnJvciAmJiBpc0NhbGxiYWNrKSB7XHJcbiAgICAgICAgICB2YXIgeCA9IE9ic2VydmFibGUuY3JlYXRlKChfb2JzOmFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9icyA9IF9vYnM7XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgYXV0aEN0eC5hY3F1aXJlVG9rZW4odGhpcy5hdXRoQ29uZmlnLmVuZHBvaW50cy5vcmdVcmksIHRoaXMuZ2V0VG9rZW4pO1xyXG4gICAgICAgICAgICB9LCAxKTtcclxuICAgICAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobG9naW5FcnJvcikge1xyXG4gICAgICAgICAgICB0aHJvdyBsb2dpbkVycm9yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFpc0NhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgIGxldCB1c2VyID0gYXV0aEN0eC5nZXRDYWNoZWRVc2VyKCk7XHJcbiAgICAgICAgICAgIGlmICh1c2VyID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGF1dGhDdHgubG9naW4oKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHVzZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKG9iczphbnkpID0+IHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvYnMubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRUb2tlbihlcnJvcjogc3RyaW5nLCB0b2tlbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnhybVNlcnZpY2UuZGVidWcpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2codG9rZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnhybVNlcnZpY2UudG9rZW4gPSB0b2tlbjtcclxuICAgICAgICB0aGlzLm9icy5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==