UNPKG

fabric8-planner

Version:
79 lines 4.08 kB
var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import { Injectable } from '@angular/core'; import { Actions, Effect, ofType } from '@ngrx/effects'; import { Observable } from 'rxjs'; import { catchError, map, switchMap } from 'rxjs/operators'; import { EventMapper } from '../models/event.model'; import * as EventActions from './../actions/event.action'; import { WorkItemService } from './../services/work-item.service'; import { ErrorHandler } from './work-item-utils'; var EventEffects = /** @class */ (function () { function EventEffects(actions$, workItemService, errHandler) { var _this = this; this.actions$ = actions$; this.workItemService = workItemService; this.errHandler = errHandler; this.eventMapper = new EventMapper(); this.getWorkItemEvents$ = this.actions$ .pipe(ofType(EventActions.GET), switchMap(function (p) { return _this.workItemService.getEvents(p.payload) .pipe(map(function (resp) { var events = resp.filter(function (event) { return event !== null; }).reverse(); return _this.resolveEvents(events); }), map(function (events) { return new EventActions.GetSuccess(events); }), catchError(function (err) { return _this.errHandler.handleError(err, "Problem loading Events.", new EventActions.GetError()); })); })); } EventEffects.prototype.resolveEvents = function (events) { var _this = this; return events.map(function (event) { var eventUI = _this.eventMapper.toUIModel(event); if (eventUI.newValueRelationships && eventUI.oldValueRelationships) { var added = eventUI.newValueRelationships.filter(function (newItem) { return eventUI.oldValueRelationships.findIndex(function (oldItem) { return oldItem.id === newItem.id; }) === -1; }); var removed = eventUI.oldValueRelationships.filter(function (oldItem) { return eventUI.newValueRelationships.findIndex(function (newItem) { return newItem.id === oldItem.id; }) === -1; }); eventUI.newValueRelationships = added; eventUI.oldValueRelationships = removed; if (eventUI.newValueRelationships.length > 0) { eventUI.type = eventUI.newValueRelationships[0].type; } else if (eventUI.oldValueRelationships.length > 0) { eventUI.type = eventUI.oldValueRelationships[0].type; } } return __assign({}, eventUI); }); }; EventEffects.decorators = [ { type: Injectable }, ]; /** @nocollapse */ EventEffects.ctorParameters = function () { return [ { type: Actions, }, { type: WorkItemService, }, { type: ErrorHandler, }, ]; }; __decorate([ Effect(), __metadata("design:type", Observable) ], EventEffects.prototype, "getWorkItemEvents$", void 0); return EventEffects; }()); export { EventEffects }; //# sourceMappingURL=event.effects.js.map