fabric8-planner
Version:
A planner front-end for Fabric8.
94 lines • 5.2 kB
JavaScript
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 * as IterationActions from '.././actions/iteration.actions';
import { IterationService } from '.././services/iteration.service';
import { IterationMapper } from '../models/iteration.model';
import { catchError, map, switchMap } from 'rxjs/operators';
import { cleanObject, normalizeArray } from '../models/common.model';
import { SpaceQuery } from '../models/space';
import { ErrorHandler, filterTypeWithSpace } from './work-item-utils';
var IterationEffects = /** @class */ (function () {
function IterationEffects(actions$, iterationService, spaceQuery, errHandler) {
var _this = this;
this.actions$ = actions$;
this.iterationService = iterationService;
this.spaceQuery = spaceQuery;
this.errHandler = errHandler;
this.getIterations$ = this.actions$
.pipe(filterTypeWithSpace(IterationActions.GET, this.spaceQuery.getCurrentSpace), switchMap(function (_a) {
var action = _a[0], space = _a[1];
return _this.iterationService.getIterations(space.relationships.iterations.links.related)
.pipe(map(function (iterations) {
var itMapper = new IterationMapper();
return iterations.map(function (it) { return itMapper.toUIModel(it); });
}), map(function (iterations) { return (new IterationActions.GetSuccess(normalizeArray(iterations))); }), catchError(function (err) { return _this.errHandler.handleError(err, 'Problem in Fetching Iterations', new IterationActions.GetError()); }));
}));
this.addIteration$ = this.actions$
.pipe(filterTypeWithSpace(IterationActions.ADD, this.spaceQuery.getCurrentSpace), switchMap(function (_a) {
var action = _a[0], space = _a[1];
var itMapper = new IterationMapper();
var iteration = itMapper.toServiceModel(action.payload.iteration);
cleanObject(iteration, ['id']);
var url = action.payload.parent ?
action.payload.parent.link :
space.relationships.iterations.links.related;
return _this.iterationService.createIteration(url, iteration)
.pipe(map(function (iteration) {
return itMapper.toUIModel(iteration);
}), map(function (iteration) {
return new IterationActions.AddSuccess({
iteration: iteration,
parent: action.payload.parent ? action.payload.parent : null
});
}), catchError(function (err) { return _this.errHandler.handleError(err, 'Problem in adding Iterations', new IterationActions.AddError()); }));
}));
this.updateIteration$ = this.actions$
.pipe(ofType(IterationActions.UPDATE), switchMap(function (action) {
var itMapper = new IterationMapper();
var iteration = itMapper.toServiceModel(action.payload);
return _this.iterationService.updateIteration(iteration)
.pipe(map(function (iteration) {
return itMapper.toUIModel(iteration);
}), map(function (iteration) {
return [
new IterationActions.UpdateSuccess(iteration)
];
}), switchMap(function (res) { return res; }), catchError(function (err) { return _this.errHandler.handleError(err, "There was some problem updating the iteration.", new IterationActions.UpdateError()); }));
}));
}
IterationEffects.decorators = [
{ type: Injectable },
];
/** @nocollapse */
IterationEffects.ctorParameters = function () { return [
{ type: Actions, },
{ type: IterationService, },
{ type: SpaceQuery, },
{ type: ErrorHandler, },
]; };
__decorate([
Effect(),
__metadata("design:type", Observable)
], IterationEffects.prototype, "getIterations$", void 0);
__decorate([
Effect(),
__metadata("design:type", Observable)
], IterationEffects.prototype, "addIteration$", void 0);
__decorate([
Effect(),
__metadata("design:type", Observable)
], IterationEffects.prototype, "updateIteration$", void 0);
return IterationEffects;
}());
export { IterationEffects };
//# sourceMappingURL=iteration.effects.js.map