temba 0.7.10 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +321 -0
  2. package/dist/config/index.js +66 -61
  3. package/dist/config/index.js.map +1 -0
  4. package/dist/delay/middleware.js +14 -14
  5. package/dist/delay/middleware.js.map +1 -0
  6. package/dist/errors/index.js +11 -11
  7. package/dist/errors/index.js.map +1 -0
  8. package/dist/errors/middleware.js +9 -12
  9. package/dist/errors/middleware.js.map +1 -0
  10. package/dist/errors/types.js +13 -0
  11. package/dist/errors/types.js.map +1 -0
  12. package/dist/logging/index.js +37 -36
  13. package/dist/logging/index.js.map +1 -0
  14. package/dist/queries/in-memory.js +48 -79
  15. package/dist/queries/in-memory.js.map +1 -0
  16. package/dist/queries/index.js +15 -19
  17. package/dist/queries/index.js.map +1 -0
  18. package/dist/queries/mongo.js +73 -277
  19. package/dist/queries/mongo.js.map +1 -0
  20. package/dist/routes/delete.js +37 -80
  21. package/dist/routes/delete.js.map +1 -0
  22. package/dist/routes/get.js +42 -83
  23. package/dist/routes/get.js.map +1 -0
  24. package/dist/routes/index.js +51 -89
  25. package/dist/routes/index.js.map +1 -0
  26. package/dist/routes/post.js +42 -59
  27. package/dist/routes/post.js.map +1 -0
  28. package/dist/routes/put.js +38 -85
  29. package/dist/routes/put.js.map +1 -0
  30. package/dist/routes/validator.js +18 -0
  31. package/dist/routes/validator.js.map +1 -0
  32. package/dist/server.js +72 -75
  33. package/dist/server.js.map +1 -0
  34. package/dist/urls/middleware.js +26 -38
  35. package/dist/urls/middleware.js.map +1 -0
  36. package/dist/urls/urlParser.js +11 -20
  37. package/dist/urls/urlParser.js.map +1 -0
  38. package/package.json +21 -11
  39. package/readme.md +0 -214
@@ -1,82 +1,39 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.createDeleteRoutes = createDeleteRoutes;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createDeleteRoutes = void 0;
14
13
  function createDeleteRoutes(queries) {
15
- function handleDelete(_x, _x2, _x3) {
16
- return _handleDelete.apply(this, arguments);
17
- }
18
-
19
- function _handleDelete() {
20
- _handleDelete = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(req, res, next) {
21
- var _req$requestInfo, resourceName, id, item;
22
-
23
- return _regenerator["default"].wrap(function _callee$(_context) {
24
- while (1) {
25
- switch (_context.prev = _context.next) {
26
- case 0:
27
- _context.prev = 0;
28
- _req$requestInfo = req.requestInfo, resourceName = _req$requestInfo.resourceName, id = _req$requestInfo.id;
29
-
30
- if (!id) {
31
- _context.next = 11;
32
- break;
33
- }
34
-
35
- _context.next = 5;
36
- return queries.getById(resourceName, id);
37
-
38
- case 5:
39
- item = _context.sent;
40
-
41
- if (!item) {
42
- _context.next = 9;
43
- break;
44
- }
45
-
46
- _context.next = 9;
47
- return queries.deleteById(resourceName, id);
48
-
49
- case 9:
50
- _context.next = 13;
51
- break;
52
-
53
- case 11:
54
- _context.next = 13;
55
- return queries.deleteAll(resourceName);
56
-
57
- case 13:
58
- _context.next = 18;
59
- break;
60
-
61
- case 15:
62
- _context.prev = 15;
63
- _context.t0 = _context["catch"](0);
64
- return _context.abrupt("return", next(_context.t0));
65
-
66
- case 18:
67
- return _context.abrupt("return", res.status(204).send());
68
-
69
- case 19:
70
- case "end":
71
- return _context.stop();
72
- }
73
- }
74
- }, _callee, null, [[0, 15]]);
75
- }));
76
- return _handleDelete.apply(this, arguments);
77
- }
78
-
79
- return {
80
- handleDelete: handleDelete
81
- };
82
- }
14
+ function handleDelete(req, res, next) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ try {
17
+ const { resourceName, id } = req.requestInfo;
18
+ if (id) {
19
+ const item = yield queries.getById(resourceName, id);
20
+ if (item) {
21
+ yield queries.deleteById(resourceName, id);
22
+ }
23
+ }
24
+ else {
25
+ yield queries.deleteAll(resourceName);
26
+ }
27
+ }
28
+ catch (error) {
29
+ return next(error);
30
+ }
31
+ return res.status(204).send();
32
+ });
33
+ }
34
+ return {
35
+ handleDelete,
36
+ };
37
+ }
38
+ exports.createDeleteRoutes = createDeleteRoutes;
39
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/routes/delete.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,SAAS,kBAAkB,CAAC,OAAO;IACjC,SAAe,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;;YACxC,IAAI;gBACF,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAE5C,IAAI,EAAE,EAAE;oBACN,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;oBACpD,IAAI,IAAI,EAAE;wBACR,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;qBAC3C;iBACF;qBAAM;oBACL,MAAM,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;iBACtC;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;aACnB;YAED,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/B,CAAC;KAAA;IAED,OAAO;QACL,YAAY;KACb,CAAA;AACH,CAAC;AAEQ,gDAAkB"}
@@ -1,85 +1,44 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.createGetRoutes = createGetRoutes;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createGetRoutes = void 0;
14
13
  function createGetRoutes(queries, cacheControl) {
15
- function handleGetResource(_x, _x2, _x3) {
16
- return _handleGetResource.apply(this, arguments);
17
- }
18
-
19
- function _handleGetResource() {
20
- _handleGetResource = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(req, res, next) {
21
- var _req$requestInfo, resourceName, id, item, items;
22
-
23
- return _regenerator["default"].wrap(function _callee$(_context) {
24
- while (1) {
25
- switch (_context.prev = _context.next) {
26
- case 0:
27
- _context.prev = 0;
28
- _req$requestInfo = req.requestInfo, resourceName = _req$requestInfo.resourceName, id = _req$requestInfo.id;
29
-
30
- if (!id) {
31
- _context.next = 14;
32
- break;
33
- }
34
-
35
- _context.next = 5;
36
- return queries.getById(resourceName, id);
37
-
38
- case 5:
39
- item = _context.sent;
40
-
41
- if (item) {
42
- _context.next = 10;
43
- break;
44
- }
45
-
46
- res.status(404);
47
- res.set('Cache-control', cacheControl);
48
- return _context.abrupt("return", res.send());
49
-
50
- case 10:
51
- res.status(200);
52
- res.set('Cache-control', cacheControl);
53
- res.json(item);
54
- return _context.abrupt("return", res.send());
55
-
56
- case 14:
57
- _context.next = 16;
58
- return queries.getAll(resourceName);
59
-
60
- case 16:
61
- items = _context.sent;
62
- res.status(200);
63
- res.set('Cache-control', cacheControl);
64
- res.json(items);
65
- return _context.abrupt("return", res.send());
66
-
67
- case 23:
68
- _context.prev = 23;
69
- _context.t0 = _context["catch"](0);
70
- return _context.abrupt("return", next(_context.t0));
71
-
72
- case 26:
73
- case "end":
74
- return _context.stop();
75
- }
76
- }
77
- }, _callee, null, [[0, 23]]);
78
- }));
79
- return _handleGetResource.apply(this, arguments);
80
- }
81
-
82
- return {
83
- handleGetResource: handleGetResource
84
- };
85
- }
14
+ function handleGetResource(req, res, next) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ try {
17
+ const { resourceName, id } = req.requestInfo;
18
+ res.set('Cache-control', cacheControl);
19
+ if (id) {
20
+ const item = yield queries.getById(resourceName, id);
21
+ if (!item) {
22
+ res.status(404);
23
+ return res.send();
24
+ }
25
+ res.status(200);
26
+ res.json(item);
27
+ return res.send();
28
+ }
29
+ const items = yield queries.getAll(resourceName);
30
+ res.status(200);
31
+ res.json(items);
32
+ return res.send();
33
+ }
34
+ catch (error) {
35
+ return next(error);
36
+ }
37
+ });
38
+ }
39
+ return {
40
+ handleGetResource,
41
+ };
42
+ }
43
+ exports.createGetRoutes = createGetRoutes;
44
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/routes/get.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,SAAS,eAAe,CAAC,OAAO,EAAE,YAAY;IAC5C,SAAe,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;;YAC7C,IAAI;gBACF,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAE5C,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;gBAEtC,IAAI,EAAE,EAAE;oBACN,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;oBAEpD,IAAI,CAAC,IAAI,EAAE;wBACT,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;wBACf,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;qBAClB;oBAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACd,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;iBAClB;gBAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBAChD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACf,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACf,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;aAClB;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;aACnB;QACH,CAAC;KAAA;IAED,OAAO;QACL,iBAAiB;KAClB,CAAA;AACH,CAAC;AAEQ,0CAAe"}
@@ -1,94 +1,56 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.handleNotFound = exports.handleMethodNotAllowed = exports.rootRouter = exports.createResourceRouter = void 0;
16
+ const get_1 = require("./get");
17
+ const post_1 = require("./post");
18
+ const put_1 = require("./put");
19
+ const delete_1 = require("./delete");
20
+ const middleware_1 = require("../urls/middleware");
21
+ const express_1 = __importDefault(require("express"));
22
+ function createResourceRouter(queries, { validateResources, resourceNames, apiPrefix, cacheControl, requestBodyValidator, }) {
23
+ const { handleGetResource } = (0, get_1.createGetRoutes)(queries, cacheControl);
24
+ const { handlePost } = (0, post_1.createPostRoutes)(queries, requestBodyValidator);
25
+ const { handlePut } = (0, put_1.createPutRoutes)(queries, requestBodyValidator);
26
+ const { handleDelete } = (0, delete_1.createDeleteRoutes)(queries);
27
+ const validateResource = (0, middleware_1.createValidateResourceMiddleware)(validateResources, resourceNames);
28
+ const getResourceAndId = (0, middleware_1.createResourceAndIdParser)(apiPrefix);
29
+ var resourceRouter = express_1.default.Router();
30
+ resourceRouter
31
+ .get('*', getResourceAndId, validateResource, handleGetResource)
32
+ .post('*', getResourceAndId, validateResource, handlePost)
33
+ .put('*', getResourceAndId, validateResource, handlePut)
34
+ .delete('*', getResourceAndId, validateResource, handleDelete);
35
+ return resourceRouter;
36
+ }
8
37
  exports.createResourceRouter = createResourceRouter;
9
- exports.handleMethodNotAllowed = handleMethodNotAllowed;
10
- exports.handleNotFound = handleNotFound;
11
- exports.rootRouter = void 0;
12
-
13
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
14
-
15
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
-
17
- var _get = require("./get");
18
-
19
- var _post = require("./post");
20
-
21
- var _put = require("./put");
22
-
23
- var _delete = require("./delete");
24
-
25
- var _middleware = require("../urls/middleware");
26
-
27
- var _express = _interopRequireDefault(require("express"));
28
-
29
- function createResourceRouter(queries, _ref) {
30
- var validateResources = _ref.validateResources,
31
- resourceNames = _ref.resourceNames,
32
- apiPrefix = _ref.apiPrefix,
33
- cacheControl = _ref.cacheControl;
34
-
35
- var _createGetRoutes = (0, _get.createGetRoutes)(queries, cacheControl),
36
- handleGetResource = _createGetRoutes.handleGetResource;
37
-
38
- var _createPostRoutes = (0, _post.createPostRoutes)(queries),
39
- handlePost = _createPostRoutes.handlePost;
40
-
41
- var _createPutRoutes = (0, _put.createPutRoutes)(queries),
42
- handlePut = _createPutRoutes.handlePut;
43
-
44
- var _createDeleteRoutes = (0, _delete.createDeleteRoutes)(queries),
45
- handleDelete = _createDeleteRoutes.handleDelete;
46
-
47
- var validateResource = (0, _middleware.createValidateResourceMiddleware)(validateResources, resourceNames);
48
- var getResourceAndId = (0, _middleware.createResourceAndIdParser)(apiPrefix);
49
-
50
- var resourceRouter = _express["default"].Router();
51
-
52
- resourceRouter.get('*', getResourceAndId, validateResource, handleGetResource).post('*', getResourceAndId, validateResource, handlePost).put('*', getResourceAndId, validateResource, handlePut)["delete"]('*', getResourceAndId, validateResource, handleDelete);
53
- return resourceRouter;
54
- } // A GET to the root URL shows a default message.
55
-
56
-
57
- var rootRouter = _express["default"].Router();
58
-
38
+ // A GET to the root URL shows a default message.
39
+ const rootRouter = express_1.default.Router();
59
40
  exports.rootRouter = rootRouter;
60
- rootRouter.get('/', /*#__PURE__*/function () {
61
- var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_, res) {
62
- return _regenerator["default"].wrap(function _callee$(_context) {
63
- while (1) {
64
- switch (_context.prev = _context.next) {
65
- case 0:
66
- return _context.abrupt("return", res.send('It works! ツ'));
67
-
68
- case 1:
69
- case "end":
70
- return _context.stop();
71
- }
72
- }
73
- }, _callee);
74
- }));
75
-
76
- return function (_x, _x2) {
77
- return _ref2.apply(this, arguments);
78
- };
79
- }()); // All other requests to the root URL are not allowed.
80
-
81
- rootRouter.all('/', handleMethodNotAllowed); // Route for handling not allowed methods.
82
-
41
+ rootRouter.get('/', (_, res) => __awaiter(void 0, void 0, void 0, function* () {
42
+ return res.send('It works! ツ');
43
+ }));
44
+ // All other requests to the root URL are not allowed.
45
+ rootRouter.all('/', handleMethodNotAllowed);
46
+ // Route for handling not allowed methods.
83
47
  function handleMethodNotAllowed(_, res) {
84
- res.status(405).json({
85
- message: 'Method Not Allowed'
86
- });
87
- } // Route for handling not found.
88
-
89
-
48
+ res.status(405).json({ message: 'Method Not Allowed' });
49
+ }
50
+ exports.handleMethodNotAllowed = handleMethodNotAllowed;
51
+ // Route for handling not found.
90
52
  function handleNotFound(_, res) {
91
- res.status(404).json({
92
- message: 'Not Found'
93
- });
94
- }
53
+ res.status(404).json({ message: 'Not Found' });
54
+ }
55
+ exports.handleNotFound = handleNotFound;
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAAuC;AACvC,iCAAyC;AACzC,+BAAuC;AACvC,qCAA6C;AAC7C,mDAG2B;AAE3B,sDAA6B;AAE7B,SAAS,oBAAoB,CAC3B,OAAO,EACP,EACE,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,oBAAoB,GACrB;IAED,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,qBAAe,EAAC,OAAO,EAAE,YAAY,CAAC,CAAA;IACpE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,uBAAgB,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;IACtE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,qBAAe,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;IACpE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,2BAAkB,EAAC,OAAO,CAAC,CAAA;IAEpD,MAAM,gBAAgB,GAAG,IAAA,6CAAgC,EACvD,iBAAiB,EACjB,aAAa,CACd,CAAA;IACD,MAAM,gBAAgB,GAAG,IAAA,sCAAyB,EAAC,SAAS,CAAC,CAAA;IAE7D,IAAI,cAAc,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;IAErC,cAAc;SACX,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;SAC/D,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,CAAC;SACzD,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,CAAC;SACvD,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAA;IAEhE,OAAO,cAAc,CAAA;AACvB,CAAC;AAsBC,oDAAoB;AApBtB,iDAAiD;AACjD,MAAM,UAAU,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;AAoBjC,gCAAU;AAnBZ,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAO,CAAC,EAAE,GAAG,EAAE,EAAE;IACnC,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAChC,CAAC,CAAA,CAAC,CAAA;AAEF,sDAAsD;AACtD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAA;AAE3C,0CAA0C;AAC1C,SAAS,sBAAsB,CAAC,CAAC,EAAE,GAAG;IACpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAA;AACzD,CAAC;AAUC,wDAAsB;AARxB,gCAAgC;AAChC,SAAS,cAAc,CAAC,CAAC,EAAE,GAAG;IAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;AAChD,CAAC;AAMC,wCAAc"}
@@ -1,61 +1,44 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.createPostRoutes = createPostRoutes;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _url = require("url");
15
-
16
- function createPostRoutes(queries) {
17
- function handlePost(_x, _x2, _x3) {
18
- return _handlePost.apply(this, arguments);
19
- }
20
-
21
- function _handlePost() {
22
- _handlePost = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(req, res, next) {
23
- var resourceName, newItem;
24
- return _regenerator["default"].wrap(function _callee$(_context) {
25
- while (1) {
26
- switch (_context.prev = _context.next) {
27
- case 0:
28
- _context.prev = 0;
29
- resourceName = req.requestInfo.resourceName;
30
- _context.next = 4;
31
- return queries.create(resourceName, req.body);
32
-
33
- case 4:
34
- newItem = _context.sent;
35
- return _context.abrupt("return", res.set({
36
- Location: (0, _url.format)({
37
- protocol: req.protocol,
38
- host: req.get('host'),
39
- pathname: "".concat(resourceName, "/").concat(newItem.id)
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createPostRoutes = void 0;
13
+ const url_1 = require("url");
14
+ const validator_1 = require("./validator");
15
+ function createPostRoutes(queries, requestBodyValidator) {
16
+ function handlePost(req, res, next) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ try {
19
+ const { resourceName } = req.requestInfo;
20
+ const requestBody = (0, validator_1.validateRequestBody)(requestBodyValidator.post, resourceName, req.body);
21
+ const newItem = yield queries.create(resourceName, requestBody);
22
+ return res
23
+ .set({
24
+ Location: (0, url_1.format)({
25
+ protocol: req.protocol,
26
+ host: req.get('host'),
27
+ pathname: `${resourceName}/${newItem.id}`,
28
+ }),
40
29
  })
41
- }).status(201).json(newItem).send());
42
-
43
- case 8:
44
- _context.prev = 8;
45
- _context.t0 = _context["catch"](0);
46
- return _context.abrupt("return", next(_context.t0));
47
-
48
- case 11:
49
- case "end":
50
- return _context.stop();
51
- }
52
- }
53
- }, _callee, null, [[0, 8]]);
54
- }));
55
- return _handlePost.apply(this, arguments);
56
- }
57
-
58
- return {
59
- handlePost: handlePost
60
- };
61
- }
30
+ .status(201)
31
+ .json(newItem)
32
+ .send();
33
+ }
34
+ catch (error) {
35
+ return next(error);
36
+ }
37
+ });
38
+ }
39
+ return {
40
+ handlePost,
41
+ };
42
+ }
43
+ exports.createPostRoutes = createPostRoutes;
44
+ //# sourceMappingURL=post.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/routes/post.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAA4B;AAC5B,2CAAiD;AAEjD,SAAS,gBAAgB,CAAC,OAAO,EAAE,oBAAoB;IACrD,SAAe,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;;YACtC,IAAI;gBACF,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAExC,MAAM,WAAW,GAAG,IAAA,+BAAmB,EACrC,oBAAoB,CAAC,IAAI,EACzB,YAAY,EACZ,GAAG,CAAC,IAAI,CACT,CAAA;gBAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;gBAE/D,OAAO,GAAG;qBACP,GAAG,CAAC;oBACH,QAAQ,EAAE,IAAA,YAAM,EAAC;wBACf,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;wBACrB,QAAQ,EAAE,GAAG,YAAY,IAAI,OAAO,CAAC,EAAE,EAAE;qBAC1C,CAAC;iBACH,CAAC;qBACD,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,OAAO,CAAC;qBACb,IAAI,EAAE,CAAA;aACV;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;aACnB;QACH,CAAC;KAAA;IAED,OAAO;QACL,UAAU;KACX,CAAA;AACH,CAAC;AAEQ,4CAAgB"}
@@ -1,87 +1,40 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createPutRoutes = void 0;
13
+ const errors_1 = require("../errors");
14
+ const validator_1 = require("./validator");
15
+ function createPutRoutes(queries, requestBodyValidator) {
16
+ function handlePut(req, res, next) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ try {
19
+ const { resourceName, id } = req.requestInfo;
20
+ const requestBody = (0, validator_1.validateRequestBody)(requestBodyValidator.put, resourceName, req.body);
21
+ let item = null;
22
+ if (id)
23
+ item = yield queries.getById(resourceName, id);
24
+ if (!item)
25
+ return next((0, errors_1.new404NotFoundError)(`ID '${id}' not found`));
26
+ item = Object.assign(Object.assign({}, requestBody), { id });
27
+ const updatedItem = yield queries.update(resourceName, item);
28
+ return res.status(200).json(updatedItem).send();
29
+ }
30
+ catch (error) {
31
+ return next(error);
32
+ }
33
+ });
34
+ }
35
+ return {
36
+ handlePut,
37
+ };
38
+ }
8
39
  exports.createPutRoutes = createPutRoutes;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
- var _errors = require("../errors");
17
-
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
19
-
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21
-
22
- function createPutRoutes(queries) {
23
- function handlePut(_x, _x2, _x3) {
24
- return _handlePut.apply(this, arguments);
25
- }
26
-
27
- function _handlePut() {
28
- _handlePut = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(req, res, next) {
29
- var _req$requestInfo, resourceName, id, item, updatedItem;
30
-
31
- return _regenerator["default"].wrap(function _callee$(_context) {
32
- while (1) {
33
- switch (_context.prev = _context.next) {
34
- case 0:
35
- _context.prev = 0;
36
- _req$requestInfo = req.requestInfo, resourceName = _req$requestInfo.resourceName, id = _req$requestInfo.id;
37
- item = null;
38
-
39
- if (!id) {
40
- _context.next = 7;
41
- break;
42
- }
43
-
44
- _context.next = 6;
45
- return queries.getById(resourceName, id);
46
-
47
- case 6:
48
- item = _context.sent;
49
-
50
- case 7:
51
- if (item) {
52
- _context.next = 9;
53
- break;
54
- }
55
-
56
- return _context.abrupt("return", next((0, _errors.new404NotFoundError)("ID '".concat(id, "' not found"))));
57
-
58
- case 9:
59
- item = _objectSpread(_objectSpread({}, req.body), {}, {
60
- id: id
61
- });
62
- _context.next = 12;
63
- return queries.update(resourceName, item);
64
-
65
- case 12:
66
- updatedItem = _context.sent;
67
- return _context.abrupt("return", res.status(200).json(updatedItem).send());
68
-
69
- case 16:
70
- _context.prev = 16;
71
- _context.t0 = _context["catch"](0);
72
- return _context.abrupt("return", next(_context.t0));
73
-
74
- case 19:
75
- case "end":
76
- return _context.stop();
77
- }
78
- }
79
- }, _callee, null, [[0, 16]]);
80
- }));
81
- return _handlePut.apply(this, arguments);
82
- }
83
-
84
- return {
85
- handlePut: handlePut
86
- };
87
- }
40
+ //# sourceMappingURL=put.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"put.js","sourceRoot":"","sources":["../../src/routes/put.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sCAA+C;AAC/C,2CAAiD;AAEjD,SAAS,eAAe,CAAC,OAAO,EAAE,oBAAoB;IACpD,SAAe,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;;YACrC,IAAI;gBACF,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAE5C,MAAM,WAAW,GAAG,IAAA,+BAAmB,EACrC,oBAAoB,CAAC,GAAG,EACxB,YAAY,EACZ,GAAG,CAAC,IAAI,CACT,CAAA;gBAED,IAAI,IAAI,GAAG,IAAI,CAAA;gBACf,IAAI,EAAE;oBAAE,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;gBAEtD,IAAI,CAAC,IAAI;oBAAE,OAAO,IAAI,CAAC,IAAA,4BAAmB,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAA;gBAEnE,IAAI,mCAAQ,WAAW,KAAE,EAAE,GAAE,CAAA;gBAE7B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;gBAE5D,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAA;aAChD;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;aACnB;QACH,CAAC;KAAA;IAED,OAAO;QACL,SAAS;KACV,CAAA;AACH,CAAC;AAEQ,0CAAe"}