fabric8-planner
Version:
A planner front-end for Fabric8.
79 lines • 4.08 kB
JavaScript
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