temba 0.8.0 → 0.10.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 (50) hide show
  1. package/README.md +38 -30
  2. package/dist/config/index.js +57 -73
  3. package/dist/config/index.js.map +1 -0
  4. package/dist/delay/delayMiddleware.js +16 -0
  5. package/dist/delay/delayMiddleware.js.map +1 -0
  6. package/dist/delay/middleware.js +14 -14
  7. package/dist/delay/middleware.js.map +1 -0
  8. package/dist/errors/errors.js +34 -0
  9. package/dist/errors/errors.js.map +1 -0
  10. package/dist/errors/index.js +10 -18
  11. package/dist/errors/index.js.map +1 -0
  12. package/dist/errors/middleware.js +9 -12
  13. package/dist/errors/middleware.js.map +1 -0
  14. package/dist/errors/types.js +13 -0
  15. package/dist/errors/types.js.map +1 -0
  16. package/dist/logging/index.js +37 -36
  17. package/dist/logging/index.js.map +1 -0
  18. package/dist/queries/in-memory.js +48 -79
  19. package/dist/queries/in-memory.js.map +1 -0
  20. package/dist/queries/index.js +15 -19
  21. package/dist/queries/index.js.map +1 -0
  22. package/dist/queries/mongo.js +73 -277
  23. package/dist/queries/mongo.js.map +1 -0
  24. package/dist/queries/queries.js +17 -0
  25. package/dist/queries/queries.js.map +1 -0
  26. package/dist/routes/delete.js +37 -80
  27. package/dist/routes/delete.js.map +1 -0
  28. package/dist/routes/get.js +42 -81
  29. package/dist/routes/get.js.map +1 -0
  30. package/dist/routes/index.js +51 -90
  31. package/dist/routes/index.js.map +1 -0
  32. package/dist/routes/post.js +43 -61
  33. package/dist/routes/post.js.map +1 -0
  34. package/dist/routes/put.js +41 -88
  35. package/dist/routes/put.js.map +1 -0
  36. package/dist/routes/routes.js +56 -0
  37. package/dist/routes/routes.js.map +1 -0
  38. package/dist/routes/types.js +3 -0
  39. package/dist/routes/types.js.map +1 -0
  40. package/dist/routes/validator.js +20 -19
  41. package/dist/routes/validator.js.map +1 -0
  42. package/dist/server.js +72 -75
  43. package/dist/server.js.map +1 -0
  44. package/dist/urls/middleware.js +26 -38
  45. package/dist/urls/middleware.js.map +1 -0
  46. package/dist/urls/urlMiddleware.js +31 -0
  47. package/dist/urls/urlMiddleware.js.map +1 -0
  48. package/dist/urls/urlParser.js +11 -20
  49. package/dist/urls/urlParser.js.map +1 -0
  50. package/package.json +22 -13
@@ -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,KAAc,EAAE;gBACvB,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,83 +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
- res.set('Cache-control', cacheControl);
30
-
31
- if (!id) {
32
- _context.next = 13;
33
- break;
34
- }
35
-
36
- _context.next = 6;
37
- return queries.getById(resourceName, id);
38
-
39
- case 6:
40
- item = _context.sent;
41
-
42
- if (item) {
43
- _context.next = 10;
44
- break;
45
- }
46
-
47
- res.status(404);
48
- return _context.abrupt("return", res.send());
49
-
50
- case 10:
51
- res.status(200);
52
- res.json(item);
53
- return _context.abrupt("return", res.send());
54
-
55
- case 13:
56
- _context.next = 15;
57
- return queries.getAll(resourceName);
58
-
59
- case 15:
60
- items = _context.sent;
61
- res.status(200);
62
- res.json(items);
63
- return _context.abrupt("return", res.send());
64
-
65
- case 21:
66
- _context.prev = 21;
67
- _context.t0 = _context["catch"](0);
68
- return _context.abrupt("return", next(_context.t0));
69
-
70
- case 24:
71
- case "end":
72
- return _context.stop();
73
- }
74
- }
75
- }, _callee, null, [[0, 21]]);
76
- }));
77
- return _handleGetResource.apply(this, arguments);
78
- }
79
-
80
- return {
81
- handleGetResource: handleGetResource
82
- };
83
- }
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,KAAc,EAAE;gBACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;aACnB;QACH,CAAC;KAAA;IAED,OAAO;QACL,iBAAiB;KAClB,CAAA;AACH,CAAC;AAEQ,0CAAe"}
@@ -1,95 +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
- requestBodyValidator = _ref.requestBodyValidator;
35
-
36
- var _createGetRoutes = (0, _get.createGetRoutes)(queries, cacheControl),
37
- handleGetResource = _createGetRoutes.handleGetResource;
38
-
39
- var _createPostRoutes = (0, _post.createPostRoutes)(queries, requestBodyValidator),
40
- handlePost = _createPostRoutes.handlePost;
41
-
42
- var _createPutRoutes = (0, _put.createPutRoutes)(queries, requestBodyValidator),
43
- handlePut = _createPutRoutes.handlePut;
44
-
45
- var _createDeleteRoutes = (0, _delete.createDeleteRoutes)(queries),
46
- handleDelete = _createDeleteRoutes.handleDelete;
47
-
48
- var validateResource = (0, _middleware.createValidateResourceMiddleware)(validateResources, resourceNames);
49
- var getResourceAndId = (0, _middleware.createResourceAndIdParser)(apiPrefix);
50
-
51
- var resourceRouter = _express["default"].Router();
52
-
53
- resourceRouter.get('*', getResourceAndId, validateResource, handleGetResource).post('*', getResourceAndId, validateResource, handlePost).put('*', getResourceAndId, validateResource, handlePut)["delete"]('*', getResourceAndId, validateResource, handleDelete);
54
- return resourceRouter;
55
- } // A GET to the root URL shows a default message.
56
-
57
-
58
- var rootRouter = _express["default"].Router();
59
-
38
+ // A GET to the root URL shows a default message.
39
+ const rootRouter = express_1.default.Router();
60
40
  exports.rootRouter = rootRouter;
61
- rootRouter.get('/', /*#__PURE__*/function () {
62
- var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_, res) {
63
- return _regenerator["default"].wrap(function _callee$(_context) {
64
- while (1) {
65
- switch (_context.prev = _context.next) {
66
- case 0:
67
- return _context.abrupt("return", res.send('It works! ツ'));
68
-
69
- case 1:
70
- case "end":
71
- return _context.stop();
72
- }
73
- }
74
- }, _callee);
75
- }));
76
-
77
- return function (_x, _x2) {
78
- return _ref2.apply(this, arguments);
79
- };
80
- }()); // All other requests to the root URL are not allowed.
81
-
82
- rootRouter.all('/', handleMethodNotAllowed); // Route for handling not allowed methods.
83
-
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.
84
47
  function handleMethodNotAllowed(_, res) {
85
- res.status(405).json({
86
- message: 'Method Not Allowed'
87
- });
88
- } // Route for handling not found.
89
-
90
-
48
+ res.status(405).json({ message: 'Method Not Allowed' });
49
+ }
50
+ exports.handleMethodNotAllowed = handleMethodNotAllowed;
51
+ // Route for handling not found.
91
52
  function handleNotFound(_, res) {
92
- res.status(404).json({
93
- message: 'Not Found'
94
- });
95
- }
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,64 +1,46 @@
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
- var _validator = require("./validator");
17
-
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");
18
15
  function createPostRoutes(queries, requestBodyValidator) {
19
- function handlePost(_x, _x2, _x3) {
20
- return _handlePost.apply(this, arguments);
21
- }
22
-
23
- function _handlePost() {
24
- _handlePost = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(req, res, next) {
25
- var resourceName, requestBody, newItem;
26
- return _regenerator["default"].wrap(function _callee$(_context) {
27
- while (1) {
28
- switch (_context.prev = _context.next) {
29
- case 0:
30
- _context.prev = 0;
31
- resourceName = req.requestInfo.resourceName;
32
- requestBody = (0, _validator.validateRequestBody)(requestBodyValidator.post, resourceName, req.body);
33
- _context.next = 5;
34
- return queries.create(resourceName, requestBody);
35
-
36
- case 5:
37
- newItem = _context.sent;
38
- return _context.abrupt("return", res.set({
39
- Location: (0, _url.format)({
40
- protocol: req.protocol,
41
- host: req.get('host'),
42
- pathname: "".concat(resourceName, "/").concat(newItem.id)
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, req);
21
+ if (typeof requestBody === 'string')
22
+ return res.status(400).json({ message: requestBody }).send();
23
+ const newItem = yield queries.create(resourceName, requestBody);
24
+ return res
25
+ .set({
26
+ Location: (0, url_1.format)({
27
+ protocol: req.protocol,
28
+ host: req.get('host'),
29
+ pathname: `${resourceName}/${newItem.id}`,
30
+ }),
43
31
  })
44
- }).status(201).json(newItem).send());
45
-
46
- case 9:
47
- _context.prev = 9;
48
- _context.t0 = _context["catch"](0);
49
- return _context.abrupt("return", next(_context.t0));
50
-
51
- case 12:
52
- case "end":
53
- return _context.stop();
54
- }
55
- }
56
- }, _callee, null, [[0, 9]]);
57
- }));
58
- return _handlePost.apply(this, arguments);
59
- }
60
-
61
- return {
62
- handlePost: handlePost
63
- };
64
- }
32
+ .status(201)
33
+ .json(newItem)
34
+ .send();
35
+ }
36
+ catch (error) {
37
+ return next(error);
38
+ }
39
+ });
40
+ }
41
+ return {
42
+ handlePost,
43
+ };
44
+ }
45
+ exports.createPostRoutes = createPostRoutes;
46
+ //# 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,EAAC,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBAEvE,IAAI,OAAO,WAAW,KAAK,QAAQ;oBACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBAE9D,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,KAAc,EAAE;gBACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;aACnB;QACH,CAAC;KAAA;IAED,OAAO;QACL,UAAU;KACX,CAAA;AACH,CAAC;AAEQ,4CAAgB"}