UNPKG

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)

52 lines 6.7 kB
import { Injectable } from '@angular/core'; import { mergeMap, map } from 'rxjs/operators'; import { MainService } from '../main/main.service'; import { DrupalConstants } from '../application/drupal-constants'; import * as i0 from "@angular/core"; /** * facebook oauth service * @see https://www.drupal.org/project/services_fboauth * @see BACK_END/admin/structure/services/list/END_POINT/resources for more details */ export class FacebookOAuthService extends MainService { constructor() { super(...arguments); this.entityType = 'fboauth'; } /** * if there is already a token in the browser cookies and it is not expired it returns * this will fetch a new token before trying to connect * @param accessToken string of the recieved access token * @return observable of the connect method * the subscription data is an object of SystemConnection interface */ connect(accessToken) { if (this.isConnectionExpired()) { this.removeSession(); } const body = { access_token: accessToken }; if (!DrupalConstants.Connection || !DrupalConstants.Connection.token) { return this.getToken().pipe(mergeMap(token => { return this.post(body, 'connect').pipe(mergeMap(connection => { return this.getToken().pipe(map(newToken => { connection.token = newToken; this.saveSessionToken(connection); return connection; })); })); })); } return this.post(body, 'connect').pipe(map(connection => { this.saveSessionToken(connection); return connection; })); } } /** @nocollapse */ FacebookOAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: FacebookOAuthService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); /** @nocollapse */ FacebookOAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: FacebookOAuthService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.4", ngImport: i0, type: FacebookOAuthService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmJvYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWRydXBhbDctc2VydmljZXMvc3JjL2xpYi9mYm9hdXRoL2Zib2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFJbEU7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxXQUFXO0lBRHJEOztRQUVFLGVBQVUsR0FBRyxTQUFTLENBQUM7S0FvQ3hCO0lBbENDOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxXQUFtQjtRQUV6QixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtRQUVELE1BQU0sSUFBSSxHQUFHO1lBQ1gsWUFBWSxFQUFFLFdBQVc7U0FDMUIsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUU7WUFDcEUsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDM0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUMzRCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUN6QyxVQUFVLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUNsQyxPQUFPLFVBQVUsQ0FBQztvQkFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDTixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNMO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsQyxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzs7b0lBcENVLG9CQUFvQjt3SUFBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1lcmdlTWFwLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBNYWluU2VydmljZSB9IGZyb20gJy4uL21haW4vbWFpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRHJ1cGFsQ29uc3RhbnRzIH0gZnJvbSAnLi4vYXBwbGljYXRpb24vZHJ1cGFsLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IFN5c3RlbUNvbm5lY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvc3lzdGVtJztcclxuXHJcblxyXG4vKipcclxuICogZmFjZWJvb2sgb2F1dGggc2VydmljZVxyXG4gKiBAc2VlIGh0dHBzOi8vd3d3LmRydXBhbC5vcmcvcHJvamVjdC9zZXJ2aWNlc19mYm9hdXRoXHJcbiAqIEBzZWUgQkFDS19FTkQvYWRtaW4vc3RydWN0dXJlL3NlcnZpY2VzL2xpc3QvRU5EX1BPSU5UL3Jlc291cmNlcyBmb3IgbW9yZSBkZXRhaWxzXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBGYWNlYm9va09BdXRoU2VydmljZSBleHRlbmRzIE1haW5TZXJ2aWNlIHtcclxuICBlbnRpdHlUeXBlID0gJ2Zib2F1dGgnO1xyXG5cclxuICAvKipcclxuICAgKiBpZiB0aGVyZSBpcyBhbHJlYWR5IGEgdG9rZW4gaW4gdGhlIGJyb3dzZXIgY29va2llcyBhbmQgaXQgaXMgbm90IGV4cGlyZWQgaXQgcmV0dXJuc1xyXG4gICAqIHRoaXMgd2lsbCBmZXRjaCBhIG5ldyB0b2tlbiBiZWZvcmUgdHJ5aW5nIHRvIGNvbm5lY3RcclxuICAgKiBAcGFyYW0gYWNjZXNzVG9rZW4gc3RyaW5nIG9mIHRoZSByZWNpZXZlZCBhY2Nlc3MgdG9rZW5cclxuICAgKiBAcmV0dXJuIG9ic2VydmFibGUgb2YgdGhlIGNvbm5lY3QgbWV0aG9kXHJcbiAgICogdGhlIHN1YnNjcmlwdGlvbiBkYXRhIGlzIGFuIG9iamVjdCBvZiBTeXN0ZW1Db25uZWN0aW9uIGludGVyZmFjZVxyXG4gICAqL1xyXG4gIGNvbm5lY3QoYWNjZXNzVG9rZW46IHN0cmluZyk6IE9ic2VydmFibGU8U3lzdGVtQ29ubmVjdGlvbj4ge1xyXG5cclxuICAgIGlmICh0aGlzLmlzQ29ubmVjdGlvbkV4cGlyZWQoKSkge1xyXG4gICAgICB0aGlzLnJlbW92ZVNlc3Npb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICBhY2Nlc3NfdG9rZW46IGFjY2Vzc1Rva2VuXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICghRHJ1cGFsQ29uc3RhbnRzLkNvbm5lY3Rpb24gfHwgIURydXBhbENvbnN0YW50cy5Db25uZWN0aW9uLnRva2VuKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldFRva2VuKCkucGlwZShtZXJnZU1hcCh0b2tlbiA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdChib2R5LCAnY29ubmVjdCcpLnBpcGUobWVyZ2VNYXAoY29ubmVjdGlvbiA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbigpLnBpcGUobWFwKG5ld1Rva2VuID0+IHtcclxuICAgICAgICAgICAgY29ubmVjdGlvbi50b2tlbiA9IG5ld1Rva2VuO1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVTZXNzaW9uVG9rZW4oY29ubmVjdGlvbik7XHJcbiAgICAgICAgICAgIHJldHVybiBjb25uZWN0aW9uO1xyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pKTtcclxuICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnBvc3QoYm9keSwgJ2Nvbm5lY3QnKS5waXBlKG1hcChjb25uZWN0aW9uID0+IHtcclxuICAgICAgdGhpcy5zYXZlU2Vzc2lvblRva2VuKGNvbm5lY3Rpb24pO1xyXG4gICAgICByZXR1cm4gY29ubmVjdGlvbjtcclxuICAgIH0pKTtcclxuICB9XHJcbn1cclxuIl19