js-abstract-synchronizer
Version:
abstract synchronizer for backend and frontend
53 lines (38 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _httpStatus = require('http-status');
var _httpStatus2 = _interopRequireDefault(_httpStatus);
var _bodyParser = require('body-parser');
var _bodyParser2 = _interopRequireDefault(_bodyParser);
var _cors = require('cors');
var _cors2 = _interopRequireDefault(_cors);
var _express = require('express');
var _express2 = _interopRequireDefault(_express);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (_ref) {
var _ref$middlewares = _ref.middlewares,
middlewares = _ref$middlewares === undefined ? [] : _ref$middlewares,
serializer = _ref.serializer;
var app = (0, _express2.default)();
middlewares.forEach(function (middleware) {
return app.use(middleware);
});
app.use((0, _cors2.default)()).use(_bodyParser2.default.json()).get('/object/:id', function (req, res) {
var object = serializer.create({ id: req.params.id });
object.reload().then(function () {
return res.json(JSON.parse(object.getSerializedStoredData()));
}).catch(function () {
return res.status(_httpStatus2.default.NOT_FOUND).end();
});
}).post('/object', function (req, res) {
var object = serializer.createFromSerializedData(req.body);
object.save().then(function () {
return res.json(JSON.parse(object.getSerializedStoredData()));
}).catch(function () {
return res.status(_httpStatus2.default.NOT_FOUND).end();
});
});
return app;
};