vix-ui
Version:
76 lines • 5.86 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { AuthConfigService } from './auth-config.service';
/**
* Wrapper for Okta API
*/
export class OktaService {
/**
* @param {?} httpClient
* @param {?} authConfig
*/
constructor(httpClient, authConfig) {
this.httpClient = httpClient;
this.authConfig = authConfig;
this.httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'SSWS ' + this.authConfig.getApiKey()
})
};
}
/**
* Build Full API URl by given endpoint
* @param {?} endpoint
* @return {?}
*/
getFullUrl(endpoint) {
return `${this.authConfig.getUrl()}/api/v1${endpoint}`;
}
/**
* Get user info by email.
* doc: https://developer.okta.com/docs/api/resources/users#get-current-user
* @param {?} userId
* @return {?}
*/
getUserInfo(userId) {
return this.httpClient.get(this.getFullUrl(`/users/${userId}`), this.httpOptions).toPromise();
}
/**
* Get user groups information by given userId
* doc: https://developer.okta.com/docs/api/resources/users#get-member-groups
* @param {?} userId
* @return {?}
*/
getUserGroups(userId) {
return this.httpClient.get(this.getFullUrl(`/users/${userId}/groups`), this.httpOptions).toPromise();
}
/**
* List all groups
* @return {?}
*/
listGroups() {
return this.httpClient.get(this.getFullUrl('/groups'), this.httpOptions).toPromise();
}
}
OktaService.decorators = [
{ type: Injectable }
];
OktaService.ctorParameters = () => [
{ type: HttpClient },
{ type: AuthConfigService }
];
if (false) {
/** @type {?} */
OktaService.prototype.httpOptions;
/** @type {?} */
OktaService.prototype.httpClient;
/** @type {?} */
OktaService.prototype.authConfig;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2t0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vdml4LXVpLyIsInNvdXJjZXMiOlsidml4LWF1dGgvb2t0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFNMUQsTUFBTTs7Ozs7SUFJSixZQUFvQixVQUFzQixFQUN0QixVQUE2QjtRQUQ3QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDakIsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUN2QixjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixlQUFlLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFO2FBQ3ZELENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQzs7Ozs7O0lBS0QsVUFBVSxDQUFDLFFBQWdCO1FBQ3pCLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLFFBQVEsRUFBRSxDQUFDO0lBQ3pELENBQUM7Ozs7Ozs7SUFNRCxXQUFXLENBQUMsTUFBYztRQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRyxDQUFDOzs7Ozs7O0lBTUQsYUFBYSxDQUFDLE1BQWM7UUFDMUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsTUFBTSxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdkcsQ0FBQzs7Ozs7SUFLRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2RixDQUFDOzs7WUE1Q0YsVUFBVTs7O1lBTkYsVUFBVTtZQUNWLGlCQUFpQjs7OztJQVF4QixrQ0FBNEI7O0lBRWhCLGlDQUE4Qjs7SUFDOUIsaUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBdXRoQ29uZmlnU2VydmljZSB9IGZyb20gJy4vYXV0aC1jb25maWcuc2VydmljZSc7XG5cbi8qKlxuICogV3JhcHBlciBmb3IgT2t0YSBBUElcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9rdGFTZXJ2aWNlIHtcblxuICBwcml2YXRlIGh0dHBPcHRpb25zOiBvYmplY3Q7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgICAgICAgICAgICBwcml2YXRlIGF1dGhDb25maWc6IEF1dGhDb25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy5odHRwT3B0aW9ucyA9IHtcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICdBdXRob3JpemF0aW9uJzogJ1NTV1MgJyArIHRoaXMuYXV0aENvbmZpZy5nZXRBcGlLZXkoKVxuICAgICAgfSlcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIEZ1bGwgQVBJIFVSbCBieSBnaXZlbiBlbmRwb2ludFxuICAgKi9cbiAgZ2V0RnVsbFVybChlbmRwb2ludDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYXV0aENvbmZpZy5nZXRVcmwoKX0vYXBpL3YxJHtlbmRwb2ludH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB1c2VyIGluZm8gYnkgZW1haWwuXG4gICAqIGRvYzogaHR0cHM6Ly9kZXZlbG9wZXIub2t0YS5jb20vZG9jcy9hcGkvcmVzb3VyY2VzL3VzZXJzI2dldC1jdXJyZW50LXVzZXJcbiAgICovXG4gIGdldFVzZXJJbmZvKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5nZXRGdWxsVXJsKGAvdXNlcnMvJHt1c2VySWR9YCksIHRoaXMuaHR0cE9wdGlvbnMpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB1c2VyIGdyb3VwcyBpbmZvcm1hdGlvbiBieSBnaXZlbiB1c2VySWRcbiAgICogZG9jOiBodHRwczovL2RldmVsb3Blci5va3RhLmNvbS9kb2NzL2FwaS9yZXNvdXJjZXMvdXNlcnMjZ2V0LW1lbWJlci1ncm91cHNcbiAgICovXG4gIGdldFVzZXJHcm91cHModXNlcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh0aGlzLmdldEZ1bGxVcmwoYC91c2Vycy8ke3VzZXJJZH0vZ3JvdXBzYCksIHRoaXMuaHR0cE9wdGlvbnMpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIGdyb3Vwc1xuICAgKi9cbiAgbGlzdEdyb3VwcygpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh0aGlzLmdldEZ1bGxVcmwoJy9ncm91cHMnKSwgdGhpcy5odHRwT3B0aW9ucykudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiJdfQ==