vix-ui
Version:
A set of essential UI modules for your Angular application in ViSenze
85 lines (84 loc) • 6.34 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} 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 },
];
/** @nocollapse */
OktaService.ctorParameters = () => [
{ type: HttpClient, },
{ type: AuthConfigService, },
];
function OktaService_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
OktaService.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
OktaService.ctorParameters;
/** @type {?} */
OktaService.prototype.httpOptions;
/** @type {?} */
OktaService.prototype.httpClient;
/** @type {?} */
OktaService.prototype.authConfig;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2t0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vdml4LXVpLyIsInNvdXJjZXMiOlsidml4LXNlcnZpY2VzL2F1dGgvc2VydmljZXMvb2t0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFNMUQsTUFBTTs7Ozs7SUFRSixZQUFvQixVQUFzQixFQUN0QjtRQURBLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVU7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNqQixPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3ZCLGNBQWMsRUFBRSxrQkFBa0I7Z0JBQ2xDLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLGVBQWUsRUFBRSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUU7YUFDdkQsQ0FBQztTQUNILENBQUM7S0FDSDs7Ozs7O0lBT0QsVUFBVSxDQUFDLFFBQWdCO1FBQ3pCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsUUFBUSxFQUFFLENBQUM7S0FDeEQ7Ozs7Ozs7SUFPRCxXQUFXLENBQUMsTUFBYztRQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0tBQy9GOzs7Ozs7O0lBUUQsYUFBYSxDQUFDLE1BQWM7UUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxNQUFNLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUN0Rzs7Ozs7SUFLRCxVQUFVO1FBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0tBQ3RGOzs7WUFyREYsVUFBVTs7OztZQU5GLFVBQVU7WUFDVixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEF1dGhDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLWNvbmZpZy5zZXJ2aWNlJztcblxuLyoqXG4gKiBXcmFwcGVyIGZvciBPa3RhIEFQSVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT2t0YVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgaHR0cE9wdGlvbnM6IG9iamVjdDtcblxuICAvKipcbiAgICogQHBhcmFtIGh0dHBDbGllbnRcbiAgICogQHBhcmFtIGF1dGhDb25maWdcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhdXRoQ29uZmlnOiBBdXRoQ29uZmlnU2VydmljZSkge1xuICAgIHRoaXMuaHR0cE9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdTU1dTICcgKyB0aGlzLmF1dGhDb25maWcuZ2V0QXBpS2V5KClcbiAgICAgIH0pXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBGdWxsIEFQSSBVUmwgYnkgZ2l2ZW4gZW5kcG9pbnRcbiAgICogQHBhcmFtIGVuZHBvaW50XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRGdWxsVXJsKGVuZHBvaW50OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5hdXRoQ29uZmlnLmdldFVybCgpfS9hcGkvdjEke2VuZHBvaW50fWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHVzZXIgaW5mbyBieSBlbWFpbC5cbiAgICogZG9jOiBodHRwczovL2RldmVsb3Blci5va3RhLmNvbS9kb2NzL2FwaS9yZXNvdXJjZXMvdXNlcnMjZ2V0LWN1cnJlbnQtdXNlclxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZ2V0VXNlckluZm8odXNlcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh0aGlzLmdldEZ1bGxVcmwoYC91c2Vycy8ke3VzZXJJZH1gKSwgdGhpcy5odHRwT3B0aW9ucykudG9Qcm9taXNlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHVzZXIgZ3JvdXBzIGluZm9ybWF0aW9uIGJ5IGdpdmVuIHVzZXJJZFxuICAgKiBkb2M6IGh0dHBzOi8vZGV2ZWxvcGVyLm9rdGEuY29tL2RvY3MvYXBpL3Jlc291cmNlcy91c2VycyNnZXQtbWVtYmVyLWdyb3Vwc1xuICAgKiBAcGFyYW0gdXNlcklkXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRVc2VyR3JvdXBzKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5nZXRGdWxsVXJsKGAvdXNlcnMvJHt1c2VySWR9L2dyb3Vwc2ApLCB0aGlzLmh0dHBPcHRpb25zKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBncm91cHNcbiAgICovXG4gIGxpc3RHcm91cHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5nZXRGdWxsVXJsKCcvZ3JvdXBzJyksIHRoaXMuaHR0cE9wdGlvbnMpLnRvUHJvbWlzZSgpO1xuICB9XG59XG4iXX0=