UNPKG

@universis/common

Version:

Universis - common directives and services

117 lines (116 loc) 11.1 kB
import * as tslib_1 from "tslib"; import { Injectable } from '@angular/core'; import { AngularDataContext } from '@themost/angular'; /** * * This Service is used to get or set user storage items * @export * @class ConfigurationService */ export class UserStorageService { constructor(context) { this.context = context; // } /** * Validates if server supports user storage */ hasUserStorage() { return tslib_1.__awaiter(this, void 0, void 0, function* () { // if flag has not been set yet if (this._hasUserStorage == null) { // ping server for user storage const services = yield this.context.getService().execute({ method: 'GET', url: 'diagnostics/services', headers: {}, data: null }); // if return value is an array of services if (Array.isArray(services)) { // search for user storage service this._hasUserStorage = services.find(service => { return service.serviceType === 'UserStorageService'; }) != null; return this._hasUserStorage; } // otherwise set flag to false this._hasUserStorage = false; } // and finally return flag return this._hasUserStorage; }); } /** * Gets a user storage item based on the given key * @param key */ getItem(key) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const hasUserStorage = yield this.hasUserStorage(); if (!hasUserStorage) { throw new Error('API server configuration does not support user storage service.'); } return yield this.context.getService().execute({ method: 'POST', url: 'users/me/storage/get', headers: {}, data: { key: key } }); }); } // noinspection JSUnusedGlobalSymbols /** * Sets a user storage item * @param key * @param value */ setItem(key, value) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const hasUserStorage = yield this.hasUserStorage(); if (!hasUserStorage) { throw new Error('API server configuration does not support user storage service.'); } return yield this.context.getService().execute({ method: 'POST', url: 'users/me/storage/set', headers: {}, data: { key: key, value: value } }); }); } /** * Removes a user storage item * @param key */ removeItem(key) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const hasUserStorage = yield this.hasUserStorage(); if (!hasUserStorage) { throw new Error('API server configuration does not support user storage service.'); } return yield this.context.getService().execute({ method: 'POST', url: 'users/me/storage/set', headers: {}, data: { key: key, value: null } }); }); } } UserStorageService.decorators = [ { type: Injectable } ]; /** @nocollapse */ UserStorageService.ctorParameters = () => [ { type: AngularDataContext } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVuaXZlcnNpcy9jb21tb24vIiwic291cmNlcyI6WyJzaGFyZWQvc2VydmljZXMvdXNlci1zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRXBEOzs7OztHQUtHO0FBRUgsTUFBTTtJQUlGLFlBQW9CLE9BQTJCO1FBQTNCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNDLEVBQUU7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDRyxjQUFjOztZQUNoQiwrQkFBK0I7WUFDL0IsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRTtnQkFDOUIsK0JBQStCO2dCQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNyRCxNQUFNLEVBQUUsS0FBSztvQkFDYixHQUFHLEVBQUUsc0JBQXNCO29CQUMzQixPQUFPLEVBQUUsRUFBRztvQkFDWixJQUFJLEVBQUUsSUFBSTtpQkFDYixDQUFDLENBQUM7Z0JBQ0gsMENBQTBDO2dCQUMxQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3pCLGtDQUFrQztvQkFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFFLE9BQU8sQ0FBQyxFQUFFO3dCQUM1QyxPQUFPLE9BQU8sQ0FBQyxXQUFXLEtBQUssb0JBQW9CLENBQUM7b0JBQ3hELENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztvQkFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7aUJBQy9CO2dCQUNELDhCQUE4QjtnQkFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7YUFDaEM7WUFDRCwwQkFBMEI7WUFDMUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2hDLENBQUM7S0FBQTtJQUVEOzs7T0FHRztJQUNHLE9BQU8sQ0FBQyxHQUFXOztZQUNyQixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7YUFDdEY7WUFDRixPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQzNDLE1BQU0sRUFBRSxNQUFNO2dCQUNkLEdBQUcsRUFBRSxzQkFBc0I7Z0JBQzNCLE9BQU8sRUFBRSxFQUFHO2dCQUNaLElBQUksRUFBRTtvQkFDRixHQUFHLEVBQUUsR0FBRztpQkFDWDthQUNKLENBQUMsQ0FBQztRQUNOLENBQUM7S0FBQTtJQUVELHFDQUFxQztJQUNyQzs7OztPQUlHO0lBQ0csT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFVOztZQUVqQyxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7YUFDdEY7WUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQzNDLE1BQU0sRUFBRSxNQUFNO2dCQUNkLEdBQUcsRUFBRSxzQkFBc0I7Z0JBQzNCLE9BQU8sRUFBRSxFQUFHO2dCQUNaLElBQUksRUFBRTtvQkFDRixHQUFHLEVBQUUsR0FBRztvQkFDUixLQUFLLEVBQUUsS0FBSztpQkFDZjthQUNKLENBQUMsQ0FBQztRQUNQLENBQUM7S0FBQTtJQUVEOzs7T0FHRztJQUNHLFVBQVUsQ0FBQyxHQUFXOztZQUN4QixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7YUFDdEY7WUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUM7Z0JBQzNDLE1BQU0sRUFBRSxNQUFNO2dCQUNkLEdBQUcsRUFBRSxzQkFBc0I7Z0JBQzNCLE9BQU8sRUFBRSxFQUFHO2dCQUNaLElBQUksRUFBRTtvQkFDRixHQUFHLEVBQUUsR0FBRztvQkFDUixLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUNKLENBQUMsQ0FBQztRQUNQLENBQUM7S0FBQTs7O1lBakdKLFVBQVU7Ozs7WUFSSCxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQge0FuZ3VsYXJEYXRhQ29udGV4dH0gZnJvbSAnQHRoZW1vc3QvYW5ndWxhcic7XG5cbi8qKlxuICpcbiAqIFRoaXMgU2VydmljZSBpcyB1c2VkIHRvIGdldCBvciBzZXQgdXNlciBzdG9yYWdlIGl0ZW1zXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQ29uZmlndXJhdGlvblNlcnZpY2VcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFVzZXJTdG9yYWdlU2VydmljZSB7XG5cbiAgICBwcml2YXRlIF9oYXNVc2VyU3RvcmFnZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGV4dDogQW5ndWxhckRhdGFDb250ZXh0KSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIGlmIHNlcnZlciBzdXBwb3J0cyB1c2VyIHN0b3JhZ2VcbiAgICAgKi9cbiAgICBhc3luYyBoYXNVc2VyU3RvcmFnZSgpIHtcbiAgICAgICAgLy8gaWYgZmxhZyBoYXMgbm90IGJlZW4gc2V0IHlldFxuICAgICAgICBpZiAodGhpcy5faGFzVXNlclN0b3JhZ2UgPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gcGluZyBzZXJ2ZXIgZm9yIHVzZXIgc3RvcmFnZVxuICAgICAgICAgICAgY29uc3Qgc2VydmljZXMgPSBhd2FpdCB0aGlzLmNvbnRleHQuZ2V0U2VydmljZSgpLmV4ZWN1dGUoe1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgdXJsOiAnZGlhZ25vc3RpY3Mvc2VydmljZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsgfSxcbiAgICAgICAgICAgICAgICBkYXRhOiBudWxsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIGlmIHJldHVybiB2YWx1ZSBpcyBhbiBhcnJheSBvZiBzZXJ2aWNlc1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2VydmljZXMpKSB7XG4gICAgICAgICAgICAgICAgLy8gc2VhcmNoIGZvciB1c2VyIHN0b3JhZ2Ugc2VydmljZVxuICAgICAgICAgICAgICAgIHRoaXMuX2hhc1VzZXJTdG9yYWdlID0gc2VydmljZXMuZmluZCggc2VydmljZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXJ2aWNlLnNlcnZpY2VUeXBlID09PSAnVXNlclN0b3JhZ2VTZXJ2aWNlJztcbiAgICAgICAgICAgICAgICB9KSAhPSBudWxsO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9oYXNVc2VyU3RvcmFnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIG90aGVyd2lzZSBzZXQgZmxhZyB0byBmYWxzZVxuICAgICAgICAgICAgdGhpcy5faGFzVXNlclN0b3JhZ2UgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBhbmQgZmluYWxseSByZXR1cm4gZmxhZ1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzVXNlclN0b3JhZ2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIHVzZXIgc3RvcmFnZSBpdGVtIGJhc2VkIG9uIHRoZSBnaXZlbiBrZXlcbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICovXG4gICAgYXN5bmMgZ2V0SXRlbShrZXk6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IGhhc1VzZXJTdG9yYWdlID0gYXdhaXQgdGhpcy5oYXNVc2VyU3RvcmFnZSgpO1xuICAgICAgICBpZiAoIWhhc1VzZXJTdG9yYWdlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FQSSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBkb2VzIG5vdCBzdXBwb3J0IHVzZXIgc3RvcmFnZSBzZXJ2aWNlLicpO1xuICAgICAgICB9XG4gICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY29udGV4dC5nZXRTZXJ2aWNlKCkuZXhlY3V0ZSh7XG4gICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICB1cmw6ICd1c2Vycy9tZS9zdG9yYWdlL2dldCcsXG4gICAgICAgICAgIGhlYWRlcnM6IHsgfSxcbiAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAga2V5OiBrZXlcbiAgICAgICAgICAgfVxuICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHNcbiAgICAvKipcbiAgICAgKiBTZXRzIGEgdXNlciBzdG9yYWdlIGl0ZW1cbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICovXG4gICAgYXN5bmMgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IFByb21pc2U8YW55PiB7XG5cbiAgICAgICAgY29uc3QgaGFzVXNlclN0b3JhZ2UgPSBhd2FpdCB0aGlzLmhhc1VzZXJTdG9yYWdlKCk7XG4gICAgICAgIGlmICghaGFzVXNlclN0b3JhZ2UpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQVBJIHNlcnZlciBjb25maWd1cmF0aW9uIGRvZXMgbm90IHN1cHBvcnQgdXNlciBzdG9yYWdlIHNlcnZpY2UuJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY29udGV4dC5nZXRTZXJ2aWNlKCkuZXhlY3V0ZSh7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIHVybDogJ3VzZXJzL21lL3N0b3JhZ2Uvc2V0JyxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgfSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHVzZXIgc3RvcmFnZSBpdGVtXG4gICAgICogQHBhcmFtIGtleVxuICAgICAqL1xuICAgIGFzeW5jIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBoYXNVc2VyU3RvcmFnZSA9IGF3YWl0IHRoaXMuaGFzVXNlclN0b3JhZ2UoKTtcbiAgICAgICAgaWYgKCFoYXNVc2VyU3RvcmFnZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgc2VydmVyIGNvbmZpZ3VyYXRpb24gZG9lcyBub3Qgc3VwcG9ydCB1c2VyIHN0b3JhZ2Ugc2VydmljZS4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5jb250ZXh0LmdldFNlcnZpY2UoKS5leGVjdXRlKHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgdXJsOiAndXNlcnMvbWUvc3RvcmFnZS9zZXQnLFxuICAgICAgICAgICAgaGVhZGVyczogeyB9LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxufVxuIl19