chyz 1.0.12-rc.8 → 1.0.13-rc.3

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 (96) hide show
  1. package/BaseChyz.ts +72 -12
  2. package/Examples/Controllers/ApiController.ts +88 -30
  3. package/Examples/Controllers/KeyCloakController.ts +100 -0
  4. package/Examples/Controllers/PublicController.ts +5 -7
  5. package/Examples/Controllers/SiteController.ts +82 -32
  6. package/Examples/Models/Categories.ts +36 -0
  7. package/Examples/Models/Customer.ts +115 -0
  8. package/Examples/Models/KeycloakUser.ts +66 -0
  9. package/Examples/Models/Order.ts +64 -0
  10. package/Examples/Models/OrderItem.ts +27 -0
  11. package/Examples/Models/ProductModels.ts +50 -0
  12. package/Examples/Models/ProductToCategories.ts +35 -0
  13. package/Examples/Models/Products.ts +49 -0
  14. package/Examples/Models/Stocks.ts +60 -0
  15. package/Examples/Models/User.ts +66 -35
  16. package/Examples/Models/UserPermission.ts +37 -0
  17. package/Examples/index-keycloack.ts +78 -0
  18. package/Examples/index.ts +16 -15
  19. package/Examples/keycloak.json +7 -0
  20. package/Examples/log/app.log +903 -1034
  21. package/Examples/log/errors.log +79 -256
  22. package/Examples/package.json +46 -44
  23. package/Examples/tsconfig.json +1 -1
  24. package/README.md +118 -16
  25. package/base/ActionFilter.ts +2 -2
  26. package/base/BaseError.ts +2 -2
  27. package/base/DataErrorDbException.ts +1 -1
  28. package/base/DbConnection.ts +6 -0
  29. package/base/ForbiddenHttpException.ts +1 -1
  30. package/base/InvalidConfigException.ts +1 -1
  31. package/base/Model.ts +204 -15
  32. package/base/NotFoundHttpException.ts +1 -1
  33. package/base/RestClient.ts +28 -0
  34. package/base/UnauthorizedHttpException.ts +2 -1
  35. package/base/ValidationHttpException.ts +14 -0
  36. package/base/db/Exception.ts +14 -0
  37. package/base/index.ts +2 -0
  38. package/dist/BaseChyz.js +56 -10
  39. package/dist/BaseChyz.js.map +1 -1
  40. package/dist/README.md +270 -0
  41. package/dist/base/ActionFilter.js +2 -2
  42. package/dist/base/ActionFilter.js.map +1 -1
  43. package/dist/base/BaseError.js +2 -2
  44. package/dist/base/BaseError.js.map +1 -1
  45. package/dist/base/DataErrorDbException.js +1 -1
  46. package/dist/base/DataErrorDbException.js.map +1 -1
  47. package/dist/base/DbConnection.js +3 -0
  48. package/dist/base/DbConnection.js.map +1 -1
  49. package/dist/base/ForbiddenHttpException.js +1 -1
  50. package/dist/base/ForbiddenHttpException.js.map +1 -1
  51. package/dist/base/InvalidConfigException.js +1 -1
  52. package/dist/base/InvalidConfigException.js.map +1 -1
  53. package/dist/base/Model.js +181 -13
  54. package/dist/base/Model.js.map +1 -1
  55. package/dist/base/NotFoundHttpException.js +1 -1
  56. package/dist/base/NotFoundHttpException.js.map +1 -1
  57. package/dist/base/RestClient.js +27 -0
  58. package/dist/base/RestClient.js.map +1 -0
  59. package/dist/base/UnauthorizedHttpException.js +1 -1
  60. package/dist/base/UnauthorizedHttpException.js.map +1 -1
  61. package/dist/base/ValidationHttpException.js +18 -0
  62. package/dist/base/ValidationHttpException.js.map +1 -0
  63. package/dist/base/db/Exception.js +16 -0
  64. package/dist/base/db/Exception.js.map +1 -0
  65. package/dist/base/index.js +2 -0
  66. package/dist/base/index.js.map +1 -1
  67. package/dist/filters/AccessControl.js +2 -2
  68. package/dist/filters/AccessControl.js.map +1 -1
  69. package/dist/filters/AccessRule.js.map +1 -1
  70. package/dist/filters/auth/AuthMethod.js +2 -2
  71. package/dist/filters/auth/AuthMethod.js.map +1 -1
  72. package/dist/filters/auth/HttpHeaderAuth.js.map +1 -1
  73. package/dist/filters/auth/JwtHttpBearerAuth.js +1 -0
  74. package/dist/filters/auth/JwtHttpBearerAuth.js.map +1 -1
  75. package/dist/filters/auth/KeyCloakHttpBearerAuth.js +117 -0
  76. package/dist/filters/auth/KeyCloakHttpBearerAuth.js.map +1 -0
  77. package/dist/index.js +28 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/package.json +55 -0
  80. package/dist/web/{User.js → WebUser.js} +12 -7
  81. package/dist/web/WebUser.js.map +1 -0
  82. package/filters/AccessControl.ts +3 -3
  83. package/filters/AccessRule.ts +2 -2
  84. package/filters/auth/AuthMethod.ts +4 -4
  85. package/filters/auth/HttpHeaderAuth.ts +2 -2
  86. package/filters/auth/JwtHttpBearerAuth.ts +4 -5
  87. package/filters/auth/KeyCloakHttpBearerAuth.ts +115 -0
  88. package/index.ts +14 -0
  89. package/package-lock.json +5259 -0
  90. package/package.json +56 -52
  91. package/web/{User.ts → WebUser.ts} +10 -6
  92. package/.idea/Chy-Nodejs-Framework.iml +0 -12
  93. package/.idea/jsLibraryMappings.xml +0 -6
  94. package/.idea/modules.xml +0 -8
  95. package/.idea/vcs.xml +0 -6
  96. package/dist/web/User.js.map +0 -1
package/dist/README.md ADDED
@@ -0,0 +1,270 @@
1
+ Hızlı şekilde microservis hazırlama için geliştirmeye başladım<br>
2
+
3
+ Temel olarak yii2 php framework'ten örnekler alındı<br>
4
+
5
+ Temel olarak basit bir Controller geliştirildi, ayrıca authentication geliştirildi.<br>
6
+
7
+ Klasör Yapısı<br>
8
+ *---Controllers <br>
9
+ *---Models<br>
10
+ *---Log<br>
11
+ *---Framework<br>
12
+ index.ts<br>
13
+
14
+ `##Başlangıç<br>
15
+ yarn start
16
+
17
+ ## index.ts alanlar düzenlenmeli.
18
+
19
+ ```typescript
20
+ require('dotenv-flow').config();
21
+
22
+ import BaseChyz from "chyz/dist/BaseChyz";
23
+ import Chyz, {DbConnection} from "chyz/dist";
24
+ import {WebUser} from "../web/WebUser";
25
+ import {User} from "./Models/User";
26
+
27
+ let config = {
28
+ components: {
29
+ db: {
30
+ class: DbConnection,
31
+ database: process.env.DBDATABASE,
32
+ username: process.env.DBUSER,
33
+ password: process.env.DBPASS,
34
+ options: {
35
+ host: process.env.DBHOST,
36
+ dialect: 'postgres', /* one of 'mysql' | 'mariadb' | 'postgres' | 'mssql' */
37
+ // disable logging; default: console.log
38
+ logging: false
39
+ }
40
+ },
41
+ user: {
42
+ 'class': WebUser,
43
+ 'identityClass': User
44
+ }
45
+ }
46
+ }
47
+ Chyz.app(config).Start();
48
+ ```
49
+
50
+ ## Create Model
51
+
52
+ Veritabanı işlemleri için model oluşturma, sequelize desteklidir.
53
+
54
+ ```typescript
55
+ import {Model, DataTypes} from "chyz/base/Model";
56
+
57
+ export class CustomerCLass extends Model {
58
+ public tableName() {
59
+ return 'customer';
60
+ }
61
+
62
+ public attributes() {
63
+ return {
64
+ username: {
65
+ type: DataTypes.STRING,
66
+ allowNull: false,
67
+ validate: {
68
+ notEmpty: true,
69
+ len: [4, 255],
70
+ }
71
+ },
72
+ email: {
73
+ type: DataTypes.STRING,
74
+ validate: {
75
+ isEmail: true
76
+ }
77
+ },
78
+ firstname: {
79
+ type: DataTypes.STRING,
80
+ allowNull: false
81
+ },
82
+ lastname: {
83
+ type: DataTypes.STRING,
84
+ },
85
+ }
86
+ }
87
+
88
+ }
89
+ const Customer= new CustomerCLass();
90
+ export { Customer };
91
+
92
+ ```
93
+ ````typescript
94
+ export class ProductsClass extends Model {
95
+ [x: string]: any;
96
+
97
+ tableName() {
98
+ return 'products';
99
+ }
100
+
101
+ attributes() {
102
+ return {
103
+ // Model attributes are defined here
104
+ title: {
105
+ type: DataTypes.STRING,
106
+ allowNull: false
107
+ },
108
+ model_id: {
109
+ type: DataTypes.INTEGER,
110
+ allowNull: false
111
+ },
112
+ properties: {
113
+ type: DataTypes.STRING,
114
+ allowNull: false
115
+ }
116
+
117
+ }
118
+ }
119
+
120
+ relations(): Relation[] {
121
+ return [
122
+ {
123
+ type: "hasOne",
124
+ foreignKey: "id",
125
+ sourceKey: "customer_id",
126
+ model: Customer.model()
127
+ }
128
+ ]
129
+ }
130
+ }
131
+
132
+ const Products = new ProductsClass()
133
+ export {Products}
134
+ ````
135
+
136
+ ## Http POST ve GET verilerini model'e yükleme
137
+
138
+ ````typescript
139
+
140
+ /**
141
+ * post data
142
+ * {
143
+ * "Customer":{
144
+ * "firstname":"cihan",
145
+ * "lastname":"ozturk"
146
+ * ....
147
+ * }
148
+ * }
149
+ * @type {Customer}
150
+ */
151
+ import {Customer} from "./Customer";
152
+ //Customer Model Create
153
+ let customer: Customer = Customer;
154
+ customer.load(req.body, "Customer");//load customer data
155
+ let cus: any = await customer.save();
156
+
157
+
158
+ ````
159
+ ## Transaction
160
+ Transaction oluşturma
161
+
162
+
163
+ ```typescript
164
+ let transaction
165
+ try {
166
+ // get transaction
167
+ transaction = await BaseChyz.getComponent("db").transaction();
168
+ //Customer Model Create
169
+ let customer: Customer = new Customer();
170
+ customer.load(data, "Customer");//load customer data
171
+ let cus: any = await customer.save({}, {transaction});
172
+ if (!cus) {
173
+ throw new ValidationHttpException(customer.errors);
174
+ }
175
+ } catch (e) {
176
+ if (transaction) {
177
+ await transaction.rollback();
178
+ BaseChyz.warn("Rollback transaction")
179
+ }
180
+ ...
181
+ }
182
+ ```
183
+
184
+ ## Yetkilendirme için kullanıcı modeli
185
+
186
+ ```typescript
187
+ /*
188
+ * Copyright (c) 2021. Chy Bilgisayar Bilisim
189
+ * Author: Cihan Ozturk
190
+ * E-mail: cihan@chy.com.tr
191
+ * Github:https://github.com/cihan53/
192
+ */
193
+ import {IdentityInterface} from "chyz/web/IdentityInterface";
194
+ // @ts-ignore
195
+ import {DataTypes} from "chyz/base";
196
+ import {Model} from "chyz/base";
197
+ import BaseChyz from "chyz/BaseChyz";
198
+
199
+ const bcrypt = require('bcrypt');
200
+ const JsonWebToken = require("jsonwebtoken");
201
+
202
+ export class User extends Model implements IdentityInterface {
203
+ public tableName() {
204
+ return 'users';
205
+ }
206
+ findIdentity(id: number) {
207
+ throw new Error("Method not implemented.");
208
+ }
209
+
210
+ getId(): number {
211
+ throw new Error("Method not implemented.");
212
+ }
213
+
214
+ getAuthKey(): string {
215
+ throw new Error("Method not implemented.");
216
+ }
217
+
218
+ validateAuthKey(authKey: string): boolean {
219
+ throw new Error("Method not implemented.");
220
+ }
221
+
222
+ public attributes() {
223
+ return {
224
+ // Model attributes are defined here
225
+ username: {
226
+ type: DataTypes.STRING,
227
+ allowNull: false
228
+ },
229
+ password: {
230
+ type: DataTypes.STRING,
231
+ allowNull: false
232
+ },
233
+ user_role: {
234
+ type: DataTypes.STRING,
235
+ allowNull: false
236
+ },
237
+ salt_text: {
238
+ type: DataTypes.STRING
239
+ // allowNull defaults to true
240
+ }
241
+ }
242
+ }
243
+
244
+ async findIdentityByAccessToken(token, type) {
245
+ let decoded = JsonWebToken.decode(token, {complete: true})
246
+ let identity = await this.findOne({where: {id: parseInt(decoded.payload.user)}});
247
+ if(identity){
248
+ BaseChyz.debug("Find Identity By AccessToken: User Found", decoded.payload)
249
+ try {
250
+ JsonWebToken.verify(token, identity.salt_text);
251
+ BaseChyz.debug("Find Identity By AccessToken: User Verify Success")
252
+ return identity;
253
+ } catch(err) {
254
+ BaseChyz.debug("Find Identity By AccessToken: User Verify Failed")
255
+ return null;
256
+ }
257
+ }
258
+ BaseChyz.debug("Find Identity By AccessToken: User Verify Failed")
259
+ return null;
260
+ }
261
+
262
+
263
+ }
264
+
265
+
266
+
267
+
268
+
269
+
270
+ ```
@@ -28,7 +28,7 @@ class ActionFilter extends Behavior_1.Behavior {
28
28
  }
29
29
  beforeFilter(route, req, res) {
30
30
  return __awaiter(this, void 0, void 0, function* () {
31
- if (!this.isActive(route.id)) {
31
+ if (!this.isActive(route)) {
32
32
  return;
33
33
  }
34
34
  yield this.beforeAction(route, req, res);
@@ -53,7 +53,7 @@ class ActionFilter extends Behavior_1.Behavior {
53
53
  for (const exceptKey in this.except) {
54
54
  let pattern = this.except[exceptKey];
55
55
  let match = id.match(pattern);
56
- if (match.length > 0) {
56
+ if (match && match.length > 0) {
57
57
  exceptMatch = true;
58
58
  }
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ActionFilter.js","sourceRoot":"","sources":["../../base/ActionFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAQA,gEAAwC;AACxC,yCAAoC;AAEpC,MAAa,YAAa,SAAQ,mBAAQ;IAA1C;;QAII;;;WAGG;QACI,WAAM,GAAG,EAAE,CAAC;IAmDvB,CAAC;IAhDU,IAAI;IAEX,CAAC;IAEY,YAAY,CAAC,KAAU,EAAE,GAAY,EAAE,GAAa;;YAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;gBAC1B,OAAO;aACV;YAED,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAC5C,CAAC;KAAA;IAES,QAAQ,CAAC,MAAW;QAC1B,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACnB,IAAI,SAAS,GAAY,KAAK,CAAC;QAC/B,IAAI,WAAW,GAAY,KAAK,CAAC;QACjC,IAAI,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC1B,SAAS,GAAG,IAAI,CAAC;SACpB;aAAM;YACH,SAAS,GAAG,KAAK,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;gBAC7B,IAAI,eAAK,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;oBACtC,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;iBACT;aACJ;SACJ;QAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;YACjC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,WAAW,GAAG,IAAI,CAAC;aACtB;SACJ;QAED,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACU,YAAY,CAAC,KAAU,EAAE,GAAY,EAAE,GAAa;;YAC7D,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;CACJ;AA3DD,oCA2DC"}
1
+ {"version":3,"file":"ActionFilter.js","sourceRoot":"","sources":["../../base/ActionFilter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAQA,gEAAwC;AACxC,yCAAoC;AAEpC,MAAa,YAAa,SAAQ,mBAAQ;IAA1C;;QAII;;;WAGG;QACI,WAAM,GAAG,EAAE,CAAC;IAmDvB,CAAC;IAhDU,IAAI;IAEX,CAAC;IAEY,YAAY,CAAC,KAAU,EAAE,GAAY,EAAE,GAAa;;YAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACvB,OAAO;aACV;YAED,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAC5C,CAAC;KAAA;IAES,QAAQ,CAAC,MAAW;QAC1B,IAAI,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACnB,IAAI,SAAS,GAAY,KAAK,CAAC;QAC/B,IAAI,WAAW,GAAY,KAAK,CAAC;QACjC,IAAI,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC1B,SAAS,GAAG,IAAI,CAAC;SACpB;aAAM;YACH,SAAS,GAAG,KAAK,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;gBAC7B,IAAI,eAAK,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;oBACtC,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;iBACT;aACJ;SACJ;QAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;YACjC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC7B,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,WAAW,GAAG,IAAI,CAAC;aACtB;SACJ;QAED,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACU,YAAY,CAAC,KAAU,EAAE,GAAY,EAAE,GAAa;;YAC7D,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;CACJ;AA3DD,oCA2DC"}
@@ -8,11 +8,11 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.BaseError = void 0;
10
10
  class BaseError extends Error {
11
- constructor(message) {
11
+ constructor(message, statusCode = 500) {
12
12
  super(message);
13
13
  this.message = message;
14
14
  this.name = this.constructor.name; // good practice
15
- this.statusCode = 500; // error code for responding to client
15
+ this.statusCode = statusCode; // error code for responding to client
16
16
  Error.captureStackTrace(this);
17
17
  }
18
18
  toString() {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseError.js","sourceRoot":"","sources":["../../base/BaseError.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,MAAa,SAAU,SAAQ,KAAK;IAGhC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAC,OAAO,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA,CAAC,gBAAgB;QAClD,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA,CAAC,sCAAsC;QAC5D,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,QAAQ;QACJ,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,EAAE,CAAA;IAC7D,CAAC;IACD,MAAM;QACF,OAAO,EAAC,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,CAAA;IAC3E,CAAC;CACJ;AAjBD,8BAiBC"}
1
+ {"version":3,"file":"BaseError.js","sourceRoot":"","sources":["../../base/BaseError.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,MAAa,SAAU,SAAQ,KAAK;IAGhC,YAAY,OAAe,EAAC,UAAU,GAAC,GAAG;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAC,OAAO,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA,CAAC,gBAAgB;QAClD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA,CAAC,sCAAsC;QACnE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,QAAQ;QACJ,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,OAAO,EAAE,CAAA;IAC7D,CAAC;IACD,MAAM;QACF,OAAO,EAAC,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC,CAAA;IAC3E,CAAC;CACJ;AAjBD,8BAiBC"}
@@ -10,7 +10,7 @@ exports.DataErrorDbException = void 0;
10
10
  const BaseError_1 = require("./BaseError");
11
11
  class DataErrorDbException extends BaseError_1.BaseError {
12
12
  constructor(message) {
13
- super(message);
13
+ super(message, 502);
14
14
  this.message = message;
15
15
  }
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DataErrorDbException.js","sourceRoot":"","sources":["../../base/DataErrorDbException.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,2CAAsC;AAEtC,MAAa,oBAAqB,SAAQ,qBAAS;IAC/C,YAAqB,OAAe;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,YAAO,GAAP,OAAO,CAAQ;IAEpC,CAAC;CACJ;AAJD,oDAIC"}
1
+ {"version":3,"file":"DataErrorDbException.js","sourceRoot":"","sources":["../../base/DataErrorDbException.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,2CAAsC;AAEtC,MAAa,oBAAqB,SAAQ,qBAAS;IAC/C,YAAqB,OAAe;QAChC,KAAK,CAAC,OAAO,EAAC,GAAG,CAAC,CAAC;QADF,YAAO,GAAP,OAAO,CAAQ;IAEpC,CAAC;CACJ;AAJD,oDAIC"}
@@ -45,6 +45,9 @@ class DbConnection extends Component_1.Component {
45
45
  set db(value) {
46
46
  this._db = value;
47
47
  }
48
+ transaction() {
49
+ return this.db.transaction();
50
+ }
48
51
  }
49
52
  exports.DbConnection = DbConnection;
50
53
  //# sourceMappingURL=DbConnection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DbConnection.js","sourceRoot":"","sources":["../../base/DbConnection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,aAAa;AACb,MAAM,EAAC,SAAS,EAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AACzC,2CAAsC;AACtC,2DAAmC;AAEnC,MAAa,YAAa,SAAQ,qBAAS;IASjC,IAAI;;YACN,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3F,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;YACrB,SAAS;iBACJ,YAAY,EAAE;iBACd,IAAI,CAAC,GAAG,EAAE;gBACP,kBAAQ,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAChB,kBAAQ,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;YAE9D,CAAC,CAAC,CAAC;YAEP,wBAAwB;QAC5B,CAAC;KAAA;IAGD,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,IAAI,EAAE,CAAC,KAAU;QACb,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IACrB,CAAC;CACJ;AAjCD,oCAiCC"}
1
+ {"version":3,"file":"DbConnection.js","sourceRoot":"","sources":["../../base/DbConnection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,aAAa;AACb,MAAM,EAAC,SAAS,EAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AACzC,2CAAsC;AACtC,2DAAmC;AAEnC,MAAa,YAAa,SAAQ,qBAAS;IAUjC,IAAI;;YACN,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3F,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;YACrB,SAAS;iBACJ,YAAY,EAAE;iBACd,IAAI,CAAC,GAAG,EAAE;gBACP,kBAAQ,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAChB,kBAAQ,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;YAE9D,CAAC,CAAC,CAAC;YAEP,wBAAwB;QAC5B,CAAC;KAAA;IAGD,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,IAAI,EAAE,CAAC,KAAU;QACb,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;CAEJ;AAvCD,oCAuCC"}
@@ -10,7 +10,7 @@ exports.ForbiddenHttpException = void 0;
10
10
  const BaseError_1 = require("./BaseError");
11
11
  class ForbiddenHttpException extends BaseError_1.BaseError {
12
12
  constructor(message) {
13
- super(message);
13
+ super(message, 403);
14
14
  }
15
15
  }
16
16
  exports.ForbiddenHttpException = ForbiddenHttpException;
@@ -1 +1 @@
1
- {"version":3,"file":"ForbiddenHttpException.js","sourceRoot":"","sources":["../../base/ForbiddenHttpException.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2CAAsC;AACtC,MAAa,sBAAuB,SAAQ,qBAAS;IACjD,YAAc,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;CACJ;AAJD,wDAIC"}
1
+ {"version":3,"file":"ForbiddenHttpException.js","sourceRoot":"","sources":["../../base/ForbiddenHttpException.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2CAAsC;AACtC,MAAa,sBAAuB,SAAQ,qBAAS;IACjD,YAAc,OAAe;QACzB,KAAK,CAAC,OAAO,EAAC,GAAG,CAAC,CAAC;IACvB,CAAC;CACJ;AAJD,wDAIC"}
@@ -10,7 +10,7 @@ exports.InvalidConfigException = void 0;
10
10
  const BaseError_1 = require("./BaseError");
11
11
  class InvalidConfigException extends BaseError_1.BaseError {
12
12
  constructor(message) {
13
- super(message);
13
+ super(message, 500);
14
14
  this.message = message;
15
15
  }
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InvalidConfigException.js","sourceRoot":"","sources":["../../base/InvalidConfigException.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,2CAAsC;AAEtC,MAAa,sBAAuB,SAAQ,qBAAS;IACjD,YAAqB,OAAe;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,YAAO,GAAP,OAAO,CAAQ;IAEpC,CAAC;CACJ;AAJD,wDAIC"}
1
+ {"version":3,"file":"InvalidConfigException.js","sourceRoot":"","sources":["../../base/InvalidConfigException.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,2CAAsC;AAEtC,MAAa,sBAAuB,SAAQ,qBAAS;IACjD,YAAqB,OAAe;QAChC,KAAK,CAAC,OAAO,EAAC,GAAG,CAAC,CAAC;QADF,YAAO,GAAP,OAAO,CAAQ;IAEpC,CAAC;CACJ;AAJD,wDAIC"}
@@ -5,17 +5,29 @@
5
5
  * E-mail: cihan@chy.com.tr
6
6
  * Github:https://github.com/cihan53/
7
7
  */
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
8
17
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
18
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
19
  };
11
20
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Model = exports.DataTypes = void 0;
21
+ exports.Model = exports.NOW = exports.DataTypes = void 0;
13
22
  const BaseChyz_1 = __importDefault(require("../BaseChyz"));
14
23
  const Utils_1 = __importDefault(require("../requiments/Utils"));
15
24
  const Component_1 = require("./Component");
16
25
  const InvalidConfigException_1 = require("./InvalidConfigException");
17
- var sequelize_1 = require("sequelize");
18
- Object.defineProperty(exports, "DataTypes", { enumerable: true, get: function () { return sequelize_1.DataTypes; } });
26
+ const sequelize_1 = require("sequelize");
27
+ const Exception_1 = require("./db/Exception");
28
+ var sequelize_2 = require("sequelize");
29
+ Object.defineProperty(exports, "DataTypes", { enumerable: true, get: function () { return sequelize_2.DataTypes; } });
30
+ Object.defineProperty(exports, "NOW", { enumerable: true, get: function () { return sequelize_2.NOW; } });
19
31
  /**
20
32
  * ValidateMe.init({
21
33
  bar: {
@@ -70,22 +82,77 @@ Object.defineProperty(exports, "DataTypes", { enumerable: true, get: function ()
70
82
  }, { sequelize });
71
83
  */
72
84
  class Model extends Component_1.Component {
73
- constructor() {
85
+ constructor(sequelize) {
74
86
  super();
75
87
  this._attributes = {};
88
+ this._errors = {};
76
89
  this._tableName = this.constructor.name;
77
- this.sequelize = BaseChyz_1.default.getComponent("db").db;
90
+ // this._sequelize = BaseChyz.getComponent("db").db;
91
+ if (sequelize != null)
92
+ this._sequelize = sequelize;
93
+ else
94
+ this._sequelize = BaseChyz_1.default.getComponent("db").db;
78
95
  if (!Utils_1.default.isEmpty(this.attributes())) {
79
- this._model = this.sequelize.define(this.constructor.name, this.attributes(), {
96
+ this._model = this._sequelize.define(this.constructor.name, this.attributes(), {
80
97
  tableName: this.tableName(),
81
98
  timestamps: false
82
99
  });
100
+ /**
101
+ * init buraya
102
+ */
103
+ for (const relation of this.relations()) {
104
+ let m = relation.model;
105
+ if (relation.type == "hasOne") {
106
+ // @ts-ignore
107
+ delete relation.model;
108
+ this.model().hasOne(m, relation);
109
+ }
110
+ if (relation.type == "hasMany") {
111
+ // @ts-ignore
112
+ delete relation.model;
113
+ this.model().hasMany(m, relation);
114
+ }
115
+ if (relation.type == "belongsTo") {
116
+ // @ts-ignore
117
+ delete relation.model;
118
+ this.model().belongsTo(m, relation);
119
+ }
120
+ if (relation.type == "belongsToMany") {
121
+ // @ts-ignore
122
+ delete relation.model;
123
+ this.model().belongsToMany(m, relation);
124
+ }
125
+ }
83
126
  }
84
127
  else {
85
128
  throw new InvalidConfigException_1.InvalidConfigException(BaseChyz_1.default.t("Invalid model configuration, is not emty attributes"));
86
129
  }
87
130
  this.init();
88
131
  }
132
+ /**
133
+ * Returns the database connection used by this AR class.
134
+ * By default, the "db" application component is used as the database connection.
135
+ * You may override this method if you want to use a different database connection.
136
+ * @return Connection the database connection used by this AR class.
137
+ */
138
+ static getDb() {
139
+ return BaseChyz_1.default.getComponent("db").db;
140
+ }
141
+ get sequelize() {
142
+ return this._sequelize;
143
+ }
144
+ set sequelize(value) {
145
+ this._sequelize = value;
146
+ }
147
+ /**
148
+ *
149
+ */
150
+ get errors() {
151
+ return this._errors;
152
+ }
153
+ set errors(value) {
154
+ this._errors = value;
155
+ }
89
156
  init() {
90
157
  BaseChyz_1.default.debug("Model init....", this.constructor.name);
91
158
  }
@@ -101,21 +168,101 @@ class Model extends Component_1.Component {
101
168
  model() {
102
169
  return this._model;
103
170
  }
104
- save() {
105
- // now instantiate an object
106
- return this._model.build(this._attributes).save();
171
+ save(params = {}, options = {}) {
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ // now instantiate an object
174
+ let p = Object.assign(params, this._attributes);
175
+ let result;
176
+ try {
177
+ result = yield this.model().create(p, options);
178
+ }
179
+ catch (e) {
180
+ BaseChyz_1.default.debug(`Model[${this.constructor.name}].create`, e);
181
+ if (e instanceof sequelize_1.ValidationError) {
182
+ let validationErrorItems = e.errors;
183
+ validationErrorItems.forEach(({ message, path }) => {
184
+ // @ts-ignore
185
+ this._errors[path] = message;
186
+ });
187
+ return false;
188
+ }
189
+ else if (e instanceof sequelize_1.DatabaseError) {
190
+ }
191
+ else if (e instanceof sequelize_1.TimeoutError) {
192
+ }
193
+ else if (e instanceof sequelize_1.UniqueConstraintError) {
194
+ }
195
+ else if (e instanceof sequelize_1.ForeignKeyConstraintError) {
196
+ }
197
+ else if (e instanceof sequelize_1.ExclusionConstraintError) {
198
+ }
199
+ throw new Exception_1.Exception(e.message, this.errors, e.code);
200
+ }
201
+ return result;
202
+ });
203
+ }
204
+ bulkCreate(params = {}, options = {}) {
205
+ return __awaiter(this, void 0, void 0, function* () {
206
+ // now instantiate an object
207
+ let p = Object.assign(params, this._attributes);
208
+ let result;
209
+ try {
210
+ result = yield this.model().bulkCreate(p, options);
211
+ }
212
+ catch (e) {
213
+ BaseChyz_1.default.debug(`Model[${this.constructor.name}].bulkCreate`, e);
214
+ if (e instanceof sequelize_1.ValidationError) {
215
+ let validationErrorItems = e.errors;
216
+ validationErrorItems.forEach(({ message, path }) => {
217
+ // @ts-ignore
218
+ this._errors[path] = message;
219
+ });
220
+ return false;
221
+ }
222
+ else if (e instanceof sequelize_1.DatabaseError) {
223
+ }
224
+ else if (e instanceof sequelize_1.TimeoutError) {
225
+ }
226
+ else if (e instanceof sequelize_1.UniqueConstraintError) {
227
+ }
228
+ else if (e instanceof sequelize_1.ForeignKeyConstraintError) {
229
+ }
230
+ else if (e instanceof sequelize_1.ExclusionConstraintError) {
231
+ }
232
+ throw new Exception_1.Exception(e.message, this.errors, e.code);
233
+ }
234
+ return result;
235
+ });
236
+ }
237
+ update(params = {}, options = {}) {
238
+ let p = Object.assign(params, this._attributes);
239
+ return this.model().update(p, options);
107
240
  }
108
- update() {
109
- return this._model.build(this._attributes).update();
241
+ delete(params = {}, options = {}) {
242
+ let p = Object.assign(params, this._attributes);
243
+ return this.model().delete(p, options);
110
244
  }
245
+ /**
246
+ *
247
+ * @param args
248
+ */
111
249
  findOne(...args) {
112
250
  return this._model.findOne(...arguments);
113
251
  }
114
- delete(...args) {
115
- return this._model.delete(...arguments);
252
+ /**
253
+ *
254
+ * @param args
255
+ */
256
+ findAll(...args) {
257
+ return this._model.findAll(...arguments);
116
258
  }
117
259
  validate() {
118
260
  }
261
+ /**
262
+ *
263
+ * @param data
264
+ * @param formName
265
+ */
119
266
  load(data, formName = null) {
120
267
  let scope = formName === null ? this.formName() : formName;
121
268
  if (scope === '' && !Utils_1.default.isEmpty(data)) {
@@ -128,6 +275,18 @@ class Model extends Component_1.Component {
128
275
  }
129
276
  return false;
130
277
  }
278
+ bulkLoad(data, formName = null) {
279
+ let scope = formName === null ? this.formName() : formName;
280
+ if (scope === '' && !Utils_1.default.isEmpty(data)) {
281
+ this.setAttribute(data);
282
+ return true;
283
+ }
284
+ else if (data[scope]) {
285
+ this.setAttribute(data[scope]);
286
+ return true;
287
+ }
288
+ return false;
289
+ }
131
290
  setAttribute(values, safeOnly = true) {
132
291
  if (values instanceof Object) {
133
292
  let attributes = this.attributes();
@@ -143,6 +302,15 @@ class Model extends Component_1.Component {
143
302
  attributes() {
144
303
  return {};
145
304
  }
305
+ /**
306
+ * relation return array
307
+ * [
308
+ *
309
+ * ]
310
+ */
311
+ relations() {
312
+ return [];
313
+ }
146
314
  }
147
315
  exports.Model = Model;
148
316
  //# sourceMappingURL=Model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Model.js","sourceRoot":"","sources":["../../base/Model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Model.js","sourceRoot":"","sources":["../../base/Model.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;AAEH,2DAAmC;AACnC,gEAAwC;AACxC,2CAAsC;AACtC,qEAAgE;AAChE,yCAAgL;AAChL,8CAAyC;AAEzC,uCAAyC;AAAjC,sGAAA,SAAS,OAAA;AAAE,gGAAA,GAAG,OAAA;AAatB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,MAAa,KAAM,SAAQ,qBAAS;IAQhC,YAAY,SAAuB;QAC/B,KAAK,EAAE,CAAC;QALJ,gBAAW,GAAQ,EAAE,CAAC;QACtB,YAAO,GAAQ,EAAE,CAAA;QAKrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACxC,oDAAoD;QACpD,IAAI,SAAS,IAAI,IAAI;YACjB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;;YAE5B,IAAI,CAAC,UAAU,GAAG,kBAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAErD,IAAI,CAAC,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;YACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE;gBAC3E,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;gBAC3B,UAAU,EAAE,KAAK;aACpB,CAAC,CAAC;YAIH;;eAEG;YAEH,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;gBACrC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAEvB,IAAG,QAAQ,CAAC,IAAI,IAAE,QAAQ,EAAG;oBACzB,aAAa;oBACb,OAAO,QAAQ,CAAC,KAAK,CAAA;oBACrB,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAE,CAAC;iBACrC;gBAED,IAAG,QAAQ,CAAC,IAAI,IAAE,SAAS,EAAE;oBACzB,aAAa;oBACb,OAAO,QAAQ,CAAC,KAAK,CAAC;oBACtB,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAE,CAAC;iBACtC;gBAED,IAAG,QAAQ,CAAC,IAAI,IAAE,WAAW,EAAG;oBAC5B,aAAa;oBACb,OAAO,QAAQ,CAAC,KAAK,CAAC;oBACtB,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAE,CAAC;iBACxC;gBAED,IAAG,QAAQ,CAAC,IAAI,IAAE,eAAe,EAAG;oBAChC,aAAa;oBACb,OAAO,QAAQ,CAAC,KAAK,CAAC;oBACtB,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAE,CAAC;iBAC5C;aACJ;SAEJ;aAAM;YACH,MAAM,IAAI,+CAAsB,CAAC,kBAAQ,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAA;SACtG;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;IAEhB,CAAC;IAGD;;;;;OAKG;IACI,MAAM,CAAC,KAAK;QAEf,OAAO,kBAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS,CAAC,KAAU;QACpB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAGD;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM,CAAC,KAAU;QACjB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAEM,IAAI;QACP,kBAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAC3D,CAAC;IAGM,SAAS;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACjC,CAAC;IAEM,KAAK;QACR,OAAO,EAAE,CAAA;IACb,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEY,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE;;YACvC,4BAA4B;YAC5B,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YAC/C,IAAI,MAAW,CAAC;YAChB,IAAI;gBACA,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;aACjD;YAAC,OAAO,CAAC,EAAE;gBACR,kBAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAA;gBAC3D,IAAI,CAAC,YAAY,2BAAe,EAAE;oBAC9B,IAAI,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;oBACpC,oBAAoB,CAAC,OAAO,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,EAAE;wBAC7C,aAAa;wBACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;oBAChC,CAAC,CAAC,CAAA;oBAEF,OAAO,KAAK,CAAC;iBAChB;qBAAM,IAAI,CAAC,YAAY,yBAAa,EAAE;iBAEtC;qBAAM,IAAI,CAAC,YAAY,wBAAY,EAAE;iBAErC;qBAAM,IAAI,CAAC,YAAY,iCAAqB,EAAE;iBAE9C;qBAAM,IAAI,CAAC,YAAY,qCAAyB,EAAE;iBAElD;qBAAM,IAAI,CAAC,YAAY,oCAAwB,EAAE;iBAEjD;gBACD,MAAM,IAAI,qBAAS,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;aACvD;YAED,OAAO,MAAM,CAAC;QAElB,CAAC;KAAA;IAEY,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE;;YAC7C,4BAA4B;YAC5B,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YAC/C,IAAI,MAAW,CAAC;YAChB,IAAI;gBACA,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;aACrD;YAAC,OAAO,CAAC,EAAE;gBACR,kBAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC,CAAA;gBAC/D,IAAI,CAAC,YAAY,2BAAe,EAAE;oBAC9B,IAAI,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;oBACpC,oBAAoB,CAAC,OAAO,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,EAAE;wBAC7C,aAAa;wBACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;oBAChC,CAAC,CAAC,CAAA;oBAEF,OAAO,KAAK,CAAC;iBAChB;qBAAM,IAAI,CAAC,YAAY,yBAAa,EAAE;iBAEtC;qBAAM,IAAI,CAAC,YAAY,wBAAY,EAAE;iBAErC;qBAAM,IAAI,CAAC,YAAY,iCAAqB,EAAE;iBAE9C;qBAAM,IAAI,CAAC,YAAY,qCAAyB,EAAE;iBAElD;qBAAM,IAAI,CAAC,YAAY,oCAAwB,EAAE;iBAEjD;gBACD,MAAM,IAAI,qBAAS,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;aACvD;YAED,OAAO,MAAM,CAAC;QAElB,CAAC;KAAA;IAEM,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE;QACnC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAEM,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE;QACnC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,GAAG,IAAW;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAA;IAC5C,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,GAAG,IAAW;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAA;IAC5C,CAAC;IAGM,QAAQ;IAEf,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,IAAS,EAAE,WAAgB,IAAI;QACvC,IAAI,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3D,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;YACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,QAAQ,CAAC,IAAS,EAAE,WAAgB,IAAI;QAC3C,IAAI,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC3D,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;SACf;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;YACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;SACf;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,YAAY,CAAC,MAAW,EAAE,QAAQ,GAAG,IAAI;QAC5C,IAAI,MAAM,YAAY,MAAM,EAAE;YAC1B,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE;gBAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;oBACjD,aAAa;oBACb,kBAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,yBAAyB,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;oBAClG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;iBACjD;aACJ;SACJ;IACL,CAAC;IAEM,UAAU;QACb,OAAO,EAAE,CAAA;IACb,CAAC;IAED;;;;;OAKG;IACI,SAAS;QACZ,OAAO,EAAE,CAAA;IACb,CAAC;CACJ;AAhRD,sBAgRC"}
@@ -10,7 +10,7 @@ exports.NotFoundHttpException = void 0;
10
10
  const BaseError_1 = require("./BaseError");
11
11
  class NotFoundHttpException extends BaseError_1.BaseError {
12
12
  constructor(message) {
13
- super(message);
13
+ super(message, 404);
14
14
  this.message = message;
15
15
  }
16
16
  }