UNPKG

@elium/mighty

Version:

Context agnostic TS & JS ORM

55 lines 2.94 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var _ = require("lodash"); var http_adapter_1 = require("./http.adapter"); var Observable_1 = require("rxjs/Observable"); require("rxjs/add/operator/mergeMap"); require("rxjs/observable/of"); var RestAdapter = (function (_super) { __extends(RestAdapter, _super); function RestAdapter() { return _super !== null && _super.apply(this, arguments) || this; } RestAdapter.prototype.findOne = function (resource, request) { var _this = this; return this._getRequestWithId(resource, request) .flatMap(function (baseRequest) { return _this.applyHook('beforeFindOne', baseRequest); }) .flatMap(function (newRequest) { return _this.dataLayer.findOne(newRequest); }) .flatMap(function (response) { return _this.applyHook('afterFindOne', response); }); }; RestAdapter.prototype.save = function (resource, request) { var _this = this; return this._getRequestWithId(resource, request) .flatMap(function (baseRequest) { return _this.applyHook('beforeSave', baseRequest); }) .flatMap(function (newRequest) { return _this.dataLayer.save(newRequest); }) .flatMap(function (response) { return _this.applyHook('afterSave', response); }); }; RestAdapter.prototype.destroy = function (resource, request) { var _this = this; return this._getRequestWithId(resource, request) .flatMap(function (baseRequest) { return _this.applyHook('beforeDestroy', baseRequest); }) .flatMap(function (newRequest) { return _this.dataLayer.destroy(newRequest); }) .flatMap(function (response) { return _this.applyHook('afterDestroy', response); }); }; RestAdapter.prototype._getRequestWithId = function (resource, request) { var _this = this; return this.applyHook('beforeRequest', request) .flatMap(function (newRequest) { var id = _.get(newRequest, 'criteria.id', null) || _.get(newRequest, 'data.id', ""); return Observable_1.Observable.of(_.merge({}, newRequest, { url: newRequest.url || _this.baseUrl + "/" + resource.identity + "/" + id })); }); }; return RestAdapter; }(http_adapter_1.HttpAdapter)); exports.RestAdapter = RestAdapter; //# sourceMappingURL=rest.adapter.js.map