ngx-drupal7-services
Version:
# Angular 2+/Ionic 2+ Drupal 7 Services #### Typescript angular module for [Drupal Services 3.x](https://www.drupal.org/project/services)
75 lines • 8.96 kB
JavaScript
import { mergeMap, map } from 'rxjs/operators';
import { Injectable } from '@angular/core';
import { MainService } from '../main/main.service';
import { DrupalConstants } from '../application/drupal-constants';
import * as i0 from "@angular/core";
/**
* system service for drupal
* @see BACK_END/admin/structure/services/list/END_POINT/resources for more details
*/
export class SystemService extends MainService {
constructor() {
super(...arguments);
this.entityType = 'system';
}
/**
* if there is already a token in the browser cookies and it is not expired it will return it
* this will fetch a new token before trying to connect
* @param refreshToken boolean to force the application to request new token
* @return observable of the connect method
* the subscription data is an object of SystemConnection interface
*/
connect(refreshToken = false) {
if (this.isConnectionExpired()) {
this.removeSession();
}
if (!DrupalConstants.Connection || !DrupalConstants.Connection.token || refreshToken) {
return this.getToken().pipe(mergeMap(token => {
return this.post({}, 'connect').pipe(map(connection => {
connection.token = token;
this.saveSessionToken(connection);
return connection;
}));
}));
}
return this.post({}, 'connect').pipe(map(connection => {
this.saveSessionToken(connection);
return connection;
}));
}
/**
* implement get_variable resource
* @param variableName the name of the variable
* @return the value of the variable
*/
getVariable(variableName) {
return this.post({ name: variableName }, 'get_variable');
}
/**
* implement set_variable resource
* @param variableName the name of the variable
* @param value the value to set for the variable
* @return always null, take care of overriding old variables with same name
*/
setVariable(variableName, value) {
const variable = {
name: variableName,
value: value
};
return this.post(variable, 'set_variable');
}
/**
* implement del_variable resource
* @param variableName variable name to delete
* @return null if variable found or not.
*/
delVariable(variableName) {
return this.post({ name: variableName }, 'del_variable');
}
}
/** @nocollapse */ SystemService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: SystemService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
/** @nocollapse */ SystemService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: SystemService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: SystemService, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHJ1cGFsNy1zZXJ2aWNlcy9zcmMvbGliL3N5c3RlbS9zeXN0ZW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFJbEU7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGFBQWMsU0FBUSxXQUFXO0lBRDlDOztRQUVFLGVBQVUsR0FBRyxRQUFRLENBQUM7S0E4RHZCO0lBNURDOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxlQUF3QixLQUFLO1FBRW5DLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxZQUFZLEVBQUU7WUFDcEYsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUNwRCxVQUFVLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztvQkFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNsQyxPQUFPLFVBQVUsQ0FBQztnQkFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDTDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNwRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEMsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLFlBQW9CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsWUFBb0IsRUFBRSxLQUFVO1FBQzFDLE1BQU0sUUFBUSxHQUFHO1lBQ2YsSUFBSSxFQUFFLFlBQVk7WUFDbEIsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxZQUFvQjtRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7NkhBOURVLGFBQWE7aUlBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IG1lcmdlTWFwLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgTWFpblNlcnZpY2UgfSBmcm9tICcuLi9tYWluL21haW4uc2VydmljZSc7XHJcbmltcG9ydCB7IERydXBhbENvbnN0YW50cyB9IGZyb20gJy4uL2FwcGxpY2F0aW9uL2RydXBhbC1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBTeXN0ZW1Db25uZWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3N5c3RlbSc7XHJcblxyXG5cclxuLyoqXHJcbiAqIHN5c3RlbSBzZXJ2aWNlIGZvciBkcnVwYWxcclxuICogQHNlZSBCQUNLX0VORC9hZG1pbi9zdHJ1Y3R1cmUvc2VydmljZXMvbGlzdC9FTkRfUE9JTlQvcmVzb3VyY2VzIGZvciBtb3JlIGRldGFpbHNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN5c3RlbVNlcnZpY2UgZXh0ZW5kcyBNYWluU2VydmljZSB7XHJcbiAgZW50aXR5VHlwZSA9ICdzeXN0ZW0nO1xyXG5cclxuICAvKipcclxuICAgKiBpZiB0aGVyZSBpcyBhbHJlYWR5IGEgdG9rZW4gaW4gdGhlIGJyb3dzZXIgY29va2llcyBhbmQgaXQgaXMgbm90IGV4cGlyZWQgaXQgd2lsbCByZXR1cm4gaXRcclxuICAgKiB0aGlzIHdpbGwgZmV0Y2ggYSBuZXcgdG9rZW4gYmVmb3JlIHRyeWluZyB0byBjb25uZWN0XHJcbiAgICogQHBhcmFtIHJlZnJlc2hUb2tlbiBib29sZWFuIHRvIGZvcmNlIHRoZSBhcHBsaWNhdGlvbiB0byByZXF1ZXN0IG5ldyB0b2tlblxyXG4gICAqIEByZXR1cm4gb2JzZXJ2YWJsZSBvZiB0aGUgY29ubmVjdCBtZXRob2RcclxuICAgKiB0aGUgc3Vic2NyaXB0aW9uIGRhdGEgaXMgYW4gb2JqZWN0IG9mIFN5c3RlbUNvbm5lY3Rpb24gaW50ZXJmYWNlXHJcbiAgICovXHJcbiAgY29ubmVjdChyZWZyZXNoVG9rZW46IGJvb2xlYW4gPSBmYWxzZSk6IE9ic2VydmFibGU8U3lzdGVtQ29ubmVjdGlvbj4ge1xyXG5cclxuICAgIGlmICh0aGlzLmlzQ29ubmVjdGlvbkV4cGlyZWQoKSkge1xyXG4gICAgICB0aGlzLnJlbW92ZVNlc3Npb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIURydXBhbENvbnN0YW50cy5Db25uZWN0aW9uIHx8ICFEcnVwYWxDb25zdGFudHMuQ29ubmVjdGlvbi50b2tlbiB8fCByZWZyZXNoVG9rZW4pIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9rZW4oKS5waXBlKG1lcmdlTWFwKHRva2VuID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wb3N0KHt9LCAnY29ubmVjdCcpLnBpcGUobWFwKGNvbm5lY3Rpb24gPT4ge1xyXG4gICAgICAgICAgY29ubmVjdGlvbi50b2tlbiA9IHRva2VuO1xyXG4gICAgICAgICAgdGhpcy5zYXZlU2Vzc2lvblRva2VuKGNvbm5lY3Rpb24pO1xyXG4gICAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb247XHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucG9zdCh7fSwgJ2Nvbm5lY3QnKS5waXBlKG1hcChjb25uZWN0aW9uID0+IHtcclxuICAgICAgdGhpcy5zYXZlU2Vzc2lvblRva2VuKGNvbm5lY3Rpb24pO1xyXG4gICAgICByZXR1cm4gY29ubmVjdGlvbjtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGltcGxlbWVudCBnZXRfdmFyaWFibGUgcmVzb3VyY2VcclxuICAgKiBAcGFyYW0gdmFyaWFibGVOYW1lIHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZVxyXG4gICAqIEByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZVxyXG4gICAqL1xyXG4gIGdldFZhcmlhYmxlKHZhcmlhYmxlTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMucG9zdCh7IG5hbWU6IHZhcmlhYmxlTmFtZSB9LCAnZ2V0X3ZhcmlhYmxlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpbXBsZW1lbnQgc2V0X3ZhcmlhYmxlIHJlc291cmNlXHJcbiAgICogQHBhcmFtIHZhcmlhYmxlTmFtZSB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGVcclxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIHNldCBmb3IgdGhlIHZhcmlhYmxlXHJcbiAgICogQHJldHVybiBhbHdheXMgbnVsbCwgdGFrZSBjYXJlIG9mIG92ZXJyaWRpbmcgb2xkIHZhcmlhYmxlcyB3aXRoIHNhbWUgbmFtZVxyXG4gICAqL1xyXG4gIHNldFZhcmlhYmxlKHZhcmlhYmxlTmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogT2JzZXJ2YWJsZTxudWxsPiB7XHJcbiAgICBjb25zdCB2YXJpYWJsZSA9IHtcclxuICAgICAgbmFtZTogdmFyaWFibGVOYW1lLFxyXG4gICAgICB2YWx1ZTogdmFsdWVcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5wb3N0KHZhcmlhYmxlLCAnc2V0X3ZhcmlhYmxlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpbXBsZW1lbnQgZGVsX3ZhcmlhYmxlIHJlc291cmNlXHJcbiAgICogQHBhcmFtIHZhcmlhYmxlTmFtZSB2YXJpYWJsZSBuYW1lIHRvIGRlbGV0ZVxyXG4gICAqIEByZXR1cm4gbnVsbCBpZiB2YXJpYWJsZSBmb3VuZCBvciBub3QuXHJcbiAgICovXHJcbiAgZGVsVmFyaWFibGUodmFyaWFibGVOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bGw+IHtcclxuICAgIHJldHVybiB0aGlzLnBvc3QoeyBuYW1lOiB2YXJpYWJsZU5hbWUgfSwgJ2RlbF92YXJpYWJsZScpO1xyXG4gIH1cclxufVxyXG4iXX0=