axe-api 0.20.0-rc4 → 0.20.0-rc5

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 (36) hide show
  1. package/build/index.js +7 -30
  2. package/build/src/Builders/ModelTreeBuilder.js +8 -10
  3. package/build/src/Builders/RouterBuilder.js +41 -46
  4. package/build/src/Builders/index.js +3 -10
  5. package/build/src/Enums.js +20 -23
  6. package/build/src/Exceptions/ApiError.js +3 -5
  7. package/build/src/Handlers/AllHandler.js +12 -14
  8. package/build/src/Handlers/DestroyHandler.js +10 -15
  9. package/build/src/Handlers/HandlerFactory.js +23 -28
  10. package/build/src/Handlers/Helpers.d.ts +1 -1
  11. package/build/src/Handlers/Helpers.js +28 -42
  12. package/build/src/Handlers/PaginateHandler.js +12 -14
  13. package/build/src/Handlers/PatchHandler.js +16 -21
  14. package/build/src/Handlers/ShowHandler.js +14 -19
  15. package/build/src/Handlers/StoreHandler.js +12 -17
  16. package/build/src/Handlers/UpdateHandler.js +16 -21
  17. package/build/src/Interfaces.js +1 -3
  18. package/build/src/Model.js +17 -22
  19. package/build/src/Resolvers/FileResolver.js +7 -12
  20. package/build/src/Resolvers/FolderResolver.js +7 -12
  21. package/build/src/Resolvers/GeneralHookResolver.js +7 -12
  22. package/build/src/Resolvers/ModelMiddlewareResolver.js +1 -3
  23. package/build/src/Resolvers/ModelResolver.js +21 -26
  24. package/build/src/Resolvers/TransactionResolver.js +3 -5
  25. package/build/src/Resolvers/index.js +7 -18
  26. package/build/src/Server.js +40 -45
  27. package/build/src/Services/DocumentationService.js +1 -3
  28. package/build/src/Services/IoCService.js +5 -7
  29. package/build/src/Services/LogService.js +10 -12
  30. package/build/src/Services/ModelListService.js +1 -3
  31. package/build/src/Services/ModelService.js +4 -6
  32. package/build/src/Services/QueryService.js +29 -34
  33. package/build/src/Services/SchemaValidatorService.js +7 -9
  34. package/build/src/Services/index.js +8 -20
  35. package/build/src/constants.js +18 -21
  36. package/package.json +3 -1
package/build/index.js CHANGED
@@ -1,30 +1,7 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.DEFAULT_HANDLERS = exports.ApiError = exports.Model = exports.Server = void 0;
21
- const Server_1 = __importDefault(require("./src/Server"));
22
- exports.Server = Server_1.default;
23
- const Model_1 = __importDefault(require("./src/Model"));
24
- exports.Model = Model_1.default;
25
- const ApiError_1 = __importDefault(require("./src/Exceptions/ApiError"));
26
- exports.ApiError = ApiError_1.default;
27
- const constants_1 = require("./src/constants");
28
- Object.defineProperty(exports, "DEFAULT_HANDLERS", { enumerable: true, get: function () { return constants_1.DEFAULT_HANDLERS; } });
29
- __exportStar(require("./src/Enums"), exports);
30
- __exportStar(require("./src/Interfaces"), exports);
1
+ import Server from "./src/Server";
2
+ import Model from "./src/Model";
3
+ import ApiError from "./src/Exceptions/ApiError";
4
+ import { DEFAULT_HANDLERS } from "./src/constants";
5
+ export * from "./src/Enums";
6
+ export * from "./src/Interfaces";
7
+ export { Server, Model, ApiError, DEFAULT_HANDLERS };
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,18 +7,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
8
  });
10
9
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const Enums_1 = require("../Enums");
13
- const Services_1 = require("../Services");
10
+ import { Relationships } from "../Enums";
11
+ import { IoCService } from "../Services";
14
12
  class ModelTreeBuilder {
15
13
  build() {
16
14
  return __awaiter(this, void 0, void 0, function* () {
17
- const logger = yield Services_1.IoCService.useByType("LogService");
18
- const modelList = yield Services_1.IoCService.useByType("ModelListService");
15
+ const logger = yield IoCService.useByType("LogService");
16
+ const modelList = yield IoCService.useByType("ModelListService");
19
17
  const tree = this.getRootLevelOfTree(modelList);
20
18
  this.createRecursiveTree(tree, modelList);
21
19
  this.addNestedRoutes(tree, modelList);
22
- Services_1.IoCService.singleton("ModelTree", () => tree);
20
+ IoCService.singleton("ModelTree", () => tree);
23
21
  logger.info("Model tree has been created.");
24
22
  });
25
23
  }
@@ -27,7 +25,7 @@ class ModelTreeBuilder {
27
25
  const childModels = [];
28
26
  modelList.get().forEach((model) => {
29
27
  childModels.push(...model.relations
30
- .filter((relation) => relation.type === Enums_1.Relationships.HAS_MANY)
28
+ .filter((relation) => relation.type === Relationships.HAS_MANY)
31
29
  .map((relation) => relation.model));
32
30
  });
33
31
  return modelList.get().filter((model) => !childModels.includes(model.name));
@@ -48,7 +46,7 @@ class ModelTreeBuilder {
48
46
  }
49
47
  getChildModelNames(model) {
50
48
  return model.relations
51
- .filter((item) => item.type === Enums_1.Relationships.HAS_MANY)
49
+ .filter((item) => item.type === Relationships.HAS_MANY)
52
50
  .map((item) => item.model);
53
51
  }
54
52
  addNestedRoutes(tree, modelList) {
@@ -61,4 +59,4 @@ class ModelTreeBuilder {
61
59
  });
62
60
  }
63
61
  }
64
- exports.default = ModelTreeBuilder;
62
+ export default ModelTreeBuilder;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,21 +7,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
8
  });
10
9
  };
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
- const pluralize_1 = __importDefault(require("pluralize"));
16
- const http_status_codes_1 = require("http-status-codes");
17
- const change_case_1 = require("change-case");
18
- const Resolvers_1 = require("../Resolvers");
19
- const constants_1 = require("../constants");
20
- const Enums_1 = require("../Enums");
21
- const Services_1 = require("../Services");
10
+ import pluralize from "pluralize";
11
+ import { StatusCodes } from "http-status-codes";
12
+ import { paramCase, camelCase } from "change-case";
13
+ import { GeneralHookResolver, TransactionResolver, ModelMiddlewareResolver, } from "../Resolvers";
14
+ import { API_ROUTE_TEMPLATES } from "../constants";
15
+ import { HandlerTypes, Relationships, HttpMethods } from "../Enums";
16
+ import { IoCService, } from "../Services";
22
17
  class RouterBuilder {
23
18
  constructor() {
24
19
  this.getPrimaryKeyName = (model) => {
25
- return (pluralize_1.default.singular(model.name).toLowerCase() +
20
+ return (pluralize.singular(model.name).toLowerCase() +
26
21
  this.ucFirst(model.instance.primaryKey));
27
22
  };
28
23
  this.ucFirst = (value) => {
@@ -30,7 +25,7 @@ class RouterBuilder {
30
25
  };
31
26
  this.getRootPrefix = () => __awaiter(this, void 0, void 0, function* () {
32
27
  var _a;
33
- const config = yield Services_1.IoCService.use("Config");
28
+ const config = yield IoCService.use("Config");
34
29
  let prefix = ((_a = config === null || config === void 0 ? void 0 : config.Application) === null || _a === void 0 ? void 0 : _a.prefix) || "api";
35
30
  if (prefix.substr(0, 1) === "/") {
36
31
  prefix = prefix.substr(1);
@@ -43,10 +38,10 @@ class RouterBuilder {
43
38
  }
44
39
  build() {
45
40
  return __awaiter(this, void 0, void 0, function* () {
46
- const logger = yield Services_1.IoCService.useByType("LogService");
47
- const modelTree = yield Services_1.IoCService.useByType("ModelTree");
48
- const modelList = yield Services_1.IoCService.useByType("ModelListService");
49
- const generalHooks = yield Resolvers_1.GeneralHookResolver.resolve();
41
+ const logger = yield IoCService.useByType("LogService");
42
+ const modelTree = yield IoCService.useByType("ModelTree");
43
+ const modelList = yield IoCService.useByType("ModelListService");
44
+ const generalHooks = yield GeneralHookResolver.resolve();
50
45
  if (generalHooks.onBeforeInit) {
51
46
  generalHooks.onBeforeInit();
52
47
  }
@@ -71,15 +66,15 @@ class RouterBuilder {
71
66
  }
72
67
  const resource = this.getResourcePath(model, relation);
73
68
  // We create and handle routes by not duplicate so many lines.
74
- for (const handler of Object.keys(constants_1.API_ROUTE_TEMPLATES)) {
69
+ for (const handler of Object.keys(API_ROUTE_TEMPLATES)) {
75
70
  const handlerType = handler;
76
71
  if (!model.instance.handlers.includes(handlerType)) {
77
72
  continue;
78
73
  }
79
- const urlCreator = constants_1.API_ROUTE_TEMPLATES[handlerType];
74
+ const urlCreator = API_ROUTE_TEMPLATES[handlerType];
80
75
  const url = urlCreator(yield this.getRootPrefix(), urlPrefix, resource, model.instance.primaryKey);
81
76
  // Detecting filters
82
- const middlewares = Resolvers_1.ModelMiddlewareResolver.resolve(model, handlerType);
77
+ const middlewares = ModelMiddlewareResolver.resolve(model, handlerType);
83
78
  // Adding the route to the express
84
79
  yield this.addExpressRoute(handlerType, url, middlewares, model, parentModel, relation);
85
80
  }
@@ -94,9 +89,9 @@ class RouterBuilder {
94
89
  }
95
90
  // We should different parameter name for child routes
96
91
  const relation = model.relations.find((relation) => relation.model === model.name &&
97
- relation.type === Enums_1.Relationships.HAS_MANY);
92
+ relation.type === Relationships.HAS_MANY);
98
93
  if (relation) {
99
- yield this.createRouteByModel(model, modelList, `${urlPrefix}${resource}/:${(0, change_case_1.camelCase)(relation.foreignKey)}/`, model, relation, false);
94
+ yield this.createRouteByModel(model, modelList, `${urlPrefix}${resource}/:${camelCase(relation.foreignKey)}/`, model, relation, false);
100
95
  }
101
96
  });
102
97
  }
@@ -107,7 +102,7 @@ class RouterBuilder {
107
102
  }
108
103
  // We should different parameter name for child routes
109
104
  const primaryKey = this.getPrimaryKeyName(model);
110
- const subRelations = model.relations.filter((item) => item.type === Enums_1.Relationships.HAS_MANY);
105
+ const subRelations = model.relations.filter((item) => item.type === Relationships.HAS_MANY);
111
106
  for (const relation of subRelations) {
112
107
  const child = model.children.find((item) => item.name === relation.model);
113
108
  // It should be recursive
@@ -119,39 +114,39 @@ class RouterBuilder {
119
114
  }
120
115
  addExpressRoute(handlerType, url, middlewares, model, parentModel, relation) {
121
116
  return __awaiter(this, void 0, void 0, function* () {
122
- const docs = yield Services_1.IoCService.useByType("DocumentationService");
123
- const app = yield Services_1.IoCService.useByType("App");
117
+ const docs = yield IoCService.useByType("DocumentationService");
118
+ const app = yield IoCService.useByType("App");
124
119
  const handler = (req, res) => {
125
120
  this.requestHandler(handlerType, req, res, model, parentModel, relation);
126
121
  };
127
122
  switch (handlerType) {
128
- case Enums_1.HandlerTypes.ALL:
123
+ case HandlerTypes.ALL:
129
124
  app.get(url, middlewares, handler);
130
- docs.push(Enums_1.HttpMethods.GET, url, model);
125
+ docs.push(HttpMethods.GET, url, model);
131
126
  break;
132
- case Enums_1.HandlerTypes.DELETE:
127
+ case HandlerTypes.DELETE:
133
128
  app.delete(url, middlewares, handler);
134
- docs.push(Enums_1.HttpMethods.DELETE, url, model);
129
+ docs.push(HttpMethods.DELETE, url, model);
135
130
  break;
136
- case Enums_1.HandlerTypes.INSERT:
131
+ case HandlerTypes.INSERT:
137
132
  app.post(url, middlewares, handler);
138
- docs.push(Enums_1.HttpMethods.POST, url, model);
133
+ docs.push(HttpMethods.POST, url, model);
139
134
  break;
140
- case Enums_1.HandlerTypes.PAGINATE:
135
+ case HandlerTypes.PAGINATE:
141
136
  app.get(url, middlewares, handler);
142
- docs.push(Enums_1.HttpMethods.GET, url, model);
137
+ docs.push(HttpMethods.GET, url, model);
143
138
  break;
144
- case Enums_1.HandlerTypes.PATCH:
139
+ case HandlerTypes.PATCH:
145
140
  app.patch(url, middlewares, handler);
146
- docs.push(Enums_1.HttpMethods.PATCH, url, model);
141
+ docs.push(HttpMethods.PATCH, url, model);
147
142
  break;
148
- case Enums_1.HandlerTypes.SHOW:
143
+ case HandlerTypes.SHOW:
149
144
  app.get(url, middlewares, handler);
150
- docs.push(Enums_1.HttpMethods.GET, url, model);
145
+ docs.push(HttpMethods.GET, url, model);
151
146
  break;
152
- case Enums_1.HandlerTypes.UPDATE:
147
+ case HandlerTypes.UPDATE:
153
148
  app.put(url, middlewares, handler);
154
- docs.push(Enums_1.HttpMethods.PUT, url, model);
149
+ docs.push(HttpMethods.PUT, url, model);
155
150
  break;
156
151
  default:
157
152
  throw new Error("Undefined handler type");
@@ -163,9 +158,9 @@ class RouterBuilder {
163
158
  let trx = null;
164
159
  let hasTransaction = false;
165
160
  try {
166
- const factory = yield Services_1.IoCService.useByType("HandlerFactory");
167
- const database = (yield Services_1.IoCService.use("Database"));
168
- hasTransaction = yield Resolvers_1.TransactionResolver.resolve(model, handlerType);
161
+ const factory = yield IoCService.useByType("HandlerFactory");
162
+ const database = (yield IoCService.use("Database"));
163
+ hasTransaction = yield TransactionResolver.resolve(model, handlerType);
169
164
  if (hasTransaction) {
170
165
  trx = yield database.transaction();
171
166
  }
@@ -202,7 +197,7 @@ class RouterBuilder {
202
197
  });
203
198
  break;
204
199
  default:
205
- res.status(http_status_codes_1.StatusCodes.INTERNAL_SERVER_ERROR).json({
200
+ res.status(StatusCodes.INTERNAL_SERVER_ERROR).json({
206
201
  error: "An error occurred.",
207
202
  });
208
203
  break;
@@ -210,10 +205,10 @@ class RouterBuilder {
210
205
  }
211
206
  getResourcePath(model, relation) {
212
207
  // TODO: Fix
213
- return (0, change_case_1.paramCase)(pluralize_1.default.plural(model.name)).toLowerCase();
208
+ return paramCase(pluralize.plural(model.name)).toLowerCase();
214
209
  // return relation
215
210
  // ? relation.resource
216
211
  // : paramCase(pluralize.plural(model.name)).toLowerCase();
217
212
  }
218
213
  }
219
- exports.default = RouterBuilder;
214
+ export default RouterBuilder;
@@ -1,10 +1,3 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RouterBuilder = exports.ModelTreeBuilder = void 0;
7
- const ModelTreeBuilder_1 = __importDefault(require("./ModelTreeBuilder"));
8
- exports.ModelTreeBuilder = ModelTreeBuilder_1.default;
9
- const RouterBuilder_1 = __importDefault(require("./RouterBuilder"));
10
- exports.RouterBuilder = RouterBuilder_1.default;
1
+ import ModelTreeBuilder from "./ModelTreeBuilder";
2
+ import RouterBuilder from "./RouterBuilder";
3
+ export { ModelTreeBuilder, RouterBuilder };
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TimestampColumns = exports.SortTypes = exports.Relationships = exports.LogLevels = exports.HttpMethods = exports.Extensions = exports.HookFunctionTypes = exports.HandlerTypes = exports.DependencyTypes = exports.ConditionTypes = void 0;
4
- var ConditionTypes;
1
+ export var ConditionTypes;
5
2
  (function (ConditionTypes) {
6
3
  ConditionTypes["NotNull"] = "NotNull";
7
4
  ConditionTypes["Null"] = "NotNull";
@@ -17,13 +14,13 @@ var ConditionTypes;
17
14
  ConditionTypes["NotIn"] = "NotIn";
18
15
  ConditionTypes["Between"] = "Between";
19
16
  ConditionTypes["NotBetween"] = "NotBetween";
20
- })(ConditionTypes = exports.ConditionTypes || (exports.ConditionTypes = {}));
21
- var DependencyTypes;
17
+ })(ConditionTypes || (ConditionTypes = {}));
18
+ export var DependencyTypes;
22
19
  (function (DependencyTypes) {
23
20
  DependencyTypes["BIND"] = "BIND";
24
21
  DependencyTypes["SINGLETON"] = "SINGLETON";
25
- })(DependencyTypes = exports.DependencyTypes || (exports.DependencyTypes = {}));
26
- var HandlerTypes;
22
+ })(DependencyTypes || (DependencyTypes = {}));
23
+ export var HandlerTypes;
27
24
  (function (HandlerTypes) {
28
25
  HandlerTypes["INSERT"] = "store";
29
26
  HandlerTypes["PAGINATE"] = "paginate";
@@ -32,8 +29,8 @@ var HandlerTypes;
32
29
  HandlerTypes["DELETE"] = "destroy";
33
30
  HandlerTypes["PATCH"] = "patch";
34
31
  HandlerTypes["ALL"] = "all";
35
- })(HandlerTypes = exports.HandlerTypes || (exports.HandlerTypes = {}));
36
- var HookFunctionTypes;
32
+ })(HandlerTypes || (HandlerTypes = {}));
33
+ export var HookFunctionTypes;
37
34
  (function (HookFunctionTypes) {
38
35
  HookFunctionTypes["onBeforeInsert"] = "onBeforeInsert";
39
36
  HookFunctionTypes["onBeforeUpdateQuery"] = "onBeforeUpdateQuery";
@@ -51,40 +48,40 @@ var HookFunctionTypes;
51
48
  HookFunctionTypes["onAfterPaginate"] = "onAfterPaginate";
52
49
  HookFunctionTypes["onAfterAll"] = "onAfterAll";
53
50
  HookFunctionTypes["onAfterShow"] = "onAfterShow";
54
- })(HookFunctionTypes = exports.HookFunctionTypes || (exports.HookFunctionTypes = {}));
55
- var Extensions;
51
+ })(HookFunctionTypes || (HookFunctionTypes = {}));
52
+ export var Extensions;
56
53
  (function (Extensions) {
57
54
  Extensions["Hooks"] = "Hooks";
58
55
  Extensions["Events"] = "Events";
59
- })(Extensions = exports.Extensions || (exports.Extensions = {}));
60
- var HttpMethods;
56
+ })(Extensions || (Extensions = {}));
57
+ export var HttpMethods;
61
58
  (function (HttpMethods) {
62
59
  HttpMethods["POST"] = "POST";
63
60
  HttpMethods["PUT"] = "PUT";
64
61
  HttpMethods["PATCH"] = "PATCH";
65
62
  HttpMethods["GET"] = "GET";
66
63
  HttpMethods["DELETE"] = "DELETE";
67
- })(HttpMethods = exports.HttpMethods || (exports.HttpMethods = {}));
68
- var LogLevels;
64
+ })(HttpMethods || (HttpMethods = {}));
65
+ export var LogLevels;
69
66
  (function (LogLevels) {
70
67
  LogLevels[LogLevels["NONE"] = 0] = "NONE";
71
68
  LogLevels[LogLevels["ERROR"] = 1] = "ERROR";
72
69
  LogLevels[LogLevels["WARNING"] = 2] = "WARNING";
73
70
  LogLevels[LogLevels["INFO"] = 3] = "INFO";
74
71
  LogLevels[LogLevels["ALL"] = 4] = "ALL";
75
- })(LogLevels = exports.LogLevels || (exports.LogLevels = {}));
76
- var Relationships;
72
+ })(LogLevels || (LogLevels = {}));
73
+ export var Relationships;
77
74
  (function (Relationships) {
78
75
  Relationships["HAS_ONE"] = "HAS_ONE";
79
76
  Relationships["HAS_MANY"] = "HAS_MANY";
80
- })(Relationships = exports.Relationships || (exports.Relationships = {}));
81
- var SortTypes;
77
+ })(Relationships || (Relationships = {}));
78
+ export var SortTypes;
82
79
  (function (SortTypes) {
83
80
  SortTypes["ASC"] = "ASC";
84
81
  SortTypes["DESC"] = "DESC";
85
- })(SortTypes = exports.SortTypes || (exports.SortTypes = {}));
86
- var TimestampColumns;
82
+ })(SortTypes || (SortTypes = {}));
83
+ export var TimestampColumns;
87
84
  (function (TimestampColumns) {
88
85
  TimestampColumns["CREATED_AT"] = "createdAtColumn";
89
86
  TimestampColumns["UPDATED_AT"] = "updatedAtColumn";
90
- })(TimestampColumns = exports.TimestampColumns || (exports.TimestampColumns = {}));
87
+ })(TimestampColumns || (TimestampColumns = {}));
@@ -1,12 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const http_status_codes_1 = require("http-status-codes");
1
+ import { StatusCodes } from "http-status-codes";
4
2
  class ApiError extends Error {
5
3
  constructor(message) {
6
4
  super(message);
7
5
  this.type = "ApiError";
8
- this.status = http_status_codes_1.StatusCodes.BAD_REQUEST;
6
+ this.status = StatusCodes.BAD_REQUEST;
9
7
  this.message = message;
10
8
  }
11
9
  }
12
- exports.default = ApiError;
10
+ export default ApiError;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,14 +7,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
8
  });
10
9
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const Helpers_1 = require("./Helpers");
13
- const Services_1 = require("../Services");
14
- const Enums_1 = require("../Enums");
15
- exports.default = (pack) => __awaiter(void 0, void 0, void 0, function* () {
16
- const modelList = yield Services_1.IoCService.useByType("ModelListService");
10
+ import { addForeignKeyQuery, getRelatedData, serializeData, filterHiddenFields, callHooks, } from "./Helpers";
11
+ import { IoCService, QueryService } from "../Services";
12
+ import { HandlerTypes, HookFunctionTypes } from "../Enums";
13
+ export default (pack) => __awaiter(void 0, void 0, void 0, function* () {
14
+ const modelList = yield IoCService.useByType("ModelListService");
17
15
  const { model, req, res, database, relation, parentModel } = pack;
18
- const queryParser = new Services_1.QueryService(model, modelList.get());
16
+ const queryParser = new QueryService(model, modelList.get());
19
17
  // We should parse URL query string to use as condition in Lucid query
20
18
  const conditions = queryParser.get(req.query);
21
19
  // Creating a new database query
@@ -23,22 +21,22 @@ exports.default = (pack) => __awaiter(void 0, void 0, void 0, function* () {
23
21
  // Users should be able to select some fields to show.
24
22
  queryParser.applyFields(query, conditions.fields);
25
23
  // Binding parent id if there is.
26
- (0, Helpers_1.addForeignKeyQuery)(req, query, relation, parentModel);
24
+ addForeignKeyQuery(req, query, relation, parentModel);
27
25
  // Users should be able to filter records
28
26
  queryParser.applyWheres(query, conditions.q);
29
- yield (0, Helpers_1.callHooks)(model, Enums_1.HookFunctionTypes.onBeforeAll, Object.assign(Object.assign({}, pack), { conditions,
27
+ yield callHooks(model, HookFunctionTypes.onBeforeAll, Object.assign(Object.assign({}, pack), { conditions,
30
28
  query }));
31
29
  // User should be able to select sorting fields and types
32
30
  queryParser.applySorting(query, conditions.sort);
33
31
  let result = yield query;
34
32
  // We should try to get related data if there is any
35
- yield (0, Helpers_1.getRelatedData)(result, conditions.with, model, modelList, database, Enums_1.HandlerTypes.ALL, req);
36
- yield (0, Helpers_1.callHooks)(model, Enums_1.HookFunctionTypes.onAfterAll, Object.assign(Object.assign({}, pack), { result,
33
+ yield getRelatedData(result, conditions.with, model, modelList, database, HandlerTypes.ALL, req);
34
+ yield callHooks(model, HookFunctionTypes.onAfterAll, Object.assign(Object.assign({}, pack), { result,
37
35
  conditions,
38
36
  query }));
39
37
  // Serializing the data by the model's serialize method
40
- result = yield (0, Helpers_1.serializeData)(result, model.instance.serialize, Enums_1.HandlerTypes.ALL, req);
38
+ result = yield serializeData(result, model.instance.serialize, HandlerTypes.ALL, req);
41
39
  // Filtering hidden fields from the response data.
42
- (0, Helpers_1.filterHiddenFields)(result, model.instance.hiddens);
40
+ filterHiddenFields(result, model.instance.hiddens);
43
41
  return res.json(result);
44
42
  });
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
2
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
3
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,30 +7,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
8
  });
10
9
  };
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
- const Helpers_1 = require("./Helpers");
16
- const Enums_1 = require("../Enums");
17
- const ApiError_1 = __importDefault(require("../Exceptions/ApiError"));
18
- exports.default = (pack) => __awaiter(void 0, void 0, void 0, function* () {
10
+ import { addForeignKeyQuery, callHooks } from "./Helpers";
11
+ import { HookFunctionTypes } from "../Enums";
12
+ import ApiError from "../Exceptions/ApiError";
13
+ export default (pack) => __awaiter(void 0, void 0, void 0, function* () {
19
14
  const { model, req, res, database, relation, parentModel } = pack;
20
15
  const query = database
21
16
  .from(model.instance.table)
22
17
  .where(model.instance.primaryKey, req.params[model.instance.primaryKey]);
23
18
  // If there is a relation, we should bind it
24
- (0, Helpers_1.addForeignKeyQuery)(req, query, relation, parentModel);
25
- yield (0, Helpers_1.callHooks)(model, Enums_1.HookFunctionTypes.onBeforeDeleteQuery, Object.assign(Object.assign({}, pack), { query }));
19
+ addForeignKeyQuery(req, query, relation, parentModel);
20
+ yield callHooks(model, HookFunctionTypes.onBeforeDeleteQuery, Object.assign(Object.assign({}, pack), { query }));
26
21
  let item = yield query.first();
27
22
  if (!item) {
28
- throw new ApiError_1.default(`The item is not found on ${model.name}.`);
23
+ throw new ApiError(`The item is not found on ${model.name}.`);
29
24
  }
30
- yield (0, Helpers_1.callHooks)(model, Enums_1.HookFunctionTypes.onAfterDeleteQuery, Object.assign(Object.assign({}, pack), { query,
25
+ yield callHooks(model, HookFunctionTypes.onAfterDeleteQuery, Object.assign(Object.assign({}, pack), { query,
31
26
  item }));
32
- yield (0, Helpers_1.callHooks)(model, Enums_1.HookFunctionTypes.onBeforeDelete, Object.assign(Object.assign({}, pack), { query,
27
+ yield callHooks(model, HookFunctionTypes.onBeforeDelete, Object.assign(Object.assign({}, pack), { query,
33
28
  item }));
34
29
  yield query.delete();
35
- yield (0, Helpers_1.callHooks)(model, Enums_1.HookFunctionTypes.onAfterDelete, Object.assign(Object.assign({}, pack), { item }));
30
+ yield callHooks(model, HookFunctionTypes.onAfterDelete, Object.assign(Object.assign({}, pack), { item }));
36
31
  return res.json();
37
32
  });
@@ -1,36 +1,31 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const AllHandler_1 = __importDefault(require("./AllHandler"));
7
- const DestroyHandler_1 = __importDefault(require("./DestroyHandler"));
8
- const PaginateHandler_1 = __importDefault(require("./PaginateHandler"));
9
- const PatchHandler_1 = __importDefault(require("./PatchHandler"));
10
- const UpdateHandler_1 = __importDefault(require("./UpdateHandler"));
11
- const ShowHandler_1 = __importDefault(require("./ShowHandler"));
12
- const StoreHandler_1 = __importDefault(require("./StoreHandler"));
13
- const Enums_1 = require("../Enums");
1
+ import AllHandler from "./AllHandler";
2
+ import DestroyHandler from "./DestroyHandler";
3
+ import PaginateHandler from "./PaginateHandler";
4
+ import PatchHandler from "./PatchHandler";
5
+ import UpdateHandler from "./UpdateHandler";
6
+ import ShowHandler from "./ShowHandler";
7
+ import StoreHandler from "./StoreHandler";
8
+ import { HandlerTypes } from "../Enums";
14
9
  class HandlerFactory {
15
10
  get(handleType) {
16
11
  switch (handleType) {
17
- case Enums_1.HandlerTypes.ALL:
18
- return AllHandler_1.default;
19
- case Enums_1.HandlerTypes.DELETE:
20
- return DestroyHandler_1.default;
21
- case Enums_1.HandlerTypes.INSERT:
22
- return StoreHandler_1.default;
23
- case Enums_1.HandlerTypes.PAGINATE:
24
- return PaginateHandler_1.default;
25
- case Enums_1.HandlerTypes.PATCH:
26
- return PatchHandler_1.default;
27
- case Enums_1.HandlerTypes.SHOW:
28
- return ShowHandler_1.default;
29
- case Enums_1.HandlerTypes.UPDATE:
30
- return UpdateHandler_1.default;
12
+ case HandlerTypes.ALL:
13
+ return AllHandler;
14
+ case HandlerTypes.DELETE:
15
+ return DestroyHandler;
16
+ case HandlerTypes.INSERT:
17
+ return StoreHandler;
18
+ case HandlerTypes.PAGINATE:
19
+ return PaginateHandler;
20
+ case HandlerTypes.PATCH:
21
+ return PatchHandler;
22
+ case HandlerTypes.SHOW:
23
+ return ShowHandler;
24
+ case HandlerTypes.UPDATE:
25
+ return UpdateHandler;
31
26
  default:
32
27
  throw new Error("Handler type is not defined");
33
28
  }
34
29
  }
35
30
  }
36
- exports.default = HandlerFactory;
31
+ export default HandlerFactory;
@@ -11,4 +11,4 @@ export declare const getParentColumn: (relation: IRelation | null) => string | n
11
11
  export declare const addForeignKeyQuery: (request: Request, query: Knex.QueryBuilder, relation: IRelation | null, parentModel: IModelService | null) => void;
12
12
  export declare const serializeData: (itemArray: any[] | any, modelSerializer: (data: any, request: Request) => void, handler: HandlerTypes, request: Request) => Promise<any[]>;
13
13
  export declare const filterHiddenFields: (itemArray: any[], hiddens: string[] | null) => void;
14
- export declare const getRelatedData: (data: any[], withArray: IWith[], model: IModelService, modelList: ModelListService, database: Knex, handler: HandlerTypes, request: Request) => Promise<void>;
14
+ export declare const getRelatedData: (data: any[], withArray: IWith[], model: IModelService, modelList: ModelListService, database: Knex | Knex.Transaction, handler: HandlerTypes, request: Request) => Promise<void>;