chyz 1.0.13-rc.3 → 1.0.13-rc.7

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.
package/BaseChyz.ts CHANGED
@@ -3,11 +3,13 @@ import {RouteDefinition} from "./model/RouteDefinition";
3
3
  import {NextFunction, Request, Response} from "express";
4
4
  import {Controller} from "./base/Controller";
5
5
  import Utils from "./requiments/Utils";
6
+ import {ModelManager} from "./base";
6
7
 
7
8
 
8
9
  const express = require("express");
9
10
  const log4js = require("log4js");
10
11
  const fs = require('fs');
12
+ const validate = require('validate');
11
13
 
12
14
  var ip = require('ip');
13
15
  var bodyParser = require('body-parser')
@@ -21,6 +23,7 @@ export default class BaseChyz {
21
23
  private _port: number = 3001;
22
24
  static db: any;
23
25
  static routes: any;
26
+ private static _validate:any=validate;
24
27
  private _logConfig: any = require('./log/config/log4js.json') ?? {}
25
28
  private _controllerpath: string = "Controllers"
26
29
  private static controllers: Array<Controller> = []
@@ -83,6 +86,13 @@ export default class BaseChyz {
83
86
  this.controllerpath = this.config.controllerpath
84
87
  }
85
88
 
89
+
90
+ /**
91
+ * Model Register
92
+ */
93
+
94
+ this.loadModels();
95
+
86
96
  /**
87
97
  * Express Server
88
98
  */
@@ -114,6 +124,14 @@ export default class BaseChyz {
114
124
  }
115
125
 
116
126
 
127
+ static get validate(): any {
128
+ return this._validate;
129
+ }
130
+
131
+ static set validate(value: any) {
132
+ this._validate = value;
133
+ }
134
+
117
135
  app(config: any = {}): BaseChyz {
118
136
 
119
137
  /**
@@ -144,7 +162,6 @@ export default class BaseChyz {
144
162
  }
145
163
 
146
164
 
147
-
148
165
  this.init();
149
166
 
150
167
  return this;
@@ -229,6 +246,30 @@ export default class BaseChyz {
229
246
  return BaseChyz.middlewares[key] ?? null
230
247
  }
231
248
 
249
+ /**
250
+ * load model
251
+ */
252
+ async loadModels() {
253
+ let models: any = {}
254
+ let path = `${this._controllerpath}/../Models`;
255
+ fs.readdirSync(path).forEach((file: string) => {
256
+ if (file !== "index.ts") {
257
+ let model = require(`${path}/${file}`);
258
+ // @ts-ignore
259
+ let className = file.split(".")[0] + "Class";
260
+ if (model[className])
261
+ models[className.replace("Class","")] = new model[className];
262
+ }
263
+ })
264
+
265
+ ModelManager._register(models);
266
+
267
+ for (const key of Object.keys(ModelManager)) {
268
+ if(key!="_register"){
269
+ ModelManager[key].init();
270
+ }
271
+ }
272
+ }
232
273
 
233
274
  /**
234
275
  * load contoller
@@ -288,8 +329,8 @@ export default class BaseChyz {
288
329
  res.status(e.statusCode || 500)
289
330
  // @ts-ignore
290
331
  res.json({error: {code: e.statusCode || 500, name: e.name, message: e.message}})
291
- }else{
292
- res.json(e )
332
+ } else {
333
+ res.json(e)
293
334
  }
294
335
  }
295
336
  })
@@ -308,7 +349,6 @@ export default class BaseChyz {
308
349
  BaseChyz.express.use(methodOverride());
309
350
 
310
351
 
311
-
312
352
  // CORS
313
353
  BaseChyz.express.use(function (req: any, res: Response, next: any) {
314
354
  // @ts-ignore
@@ -352,10 +392,3 @@ export default class BaseChyz {
352
392
 
353
393
 
354
394
  }
355
-
356
-
357
- process.on('uncaughtException', err => {
358
- BaseChyz.error('There was an uncaught error', err)
359
- process.exit(1) //mandatory (as per the Node.js docs)
360
- })
361
-
@@ -7,7 +7,7 @@
7
7
  *
8
8
  */
9
9
 
10
- import {Controller} from "../../base";
10
+ import {Controller, ModelManager} from "../../base";
11
11
  import BaseChyz from "../../BaseChyz";
12
12
  // @ts-ignore
13
13
  import {Request, Response} from "express";
@@ -18,10 +18,8 @@ import {JwtHttpBearerAuth} from "../../filters/auth";
18
18
 
19
19
  import {ValidationHttpException} from "../../base";
20
20
  import {ForbiddenHttpException} from "../../base";
21
- import {OrderClass, Order} from "../Models/Order";
22
- import {CustomerClass, Customer} from "../Models/Customer";
23
- import {Products} from "../Models/Products";
24
- import {ProductModels} from "../Models/ProductModels";
21
+
22
+
25
23
 
26
24
  @controller("/api")
27
25
  class ApiController extends Controller {
@@ -70,17 +68,15 @@ class ApiController extends Controller {
70
68
  data.Customer["2fa"] = "true";
71
69
 
72
70
  //Customer Model Create
73
- let customer: CustomerClass = Customer;
71
+ let customer = ModelManager.Customer;
74
72
  //Order Model Create
75
- let order: OrderClass = Order;
73
+ let order = ModelManager.Order;
76
74
 
77
75
 
78
76
  let transaction
79
77
  try {
80
78
  // get transaction
81
79
  transaction = await BaseChyz.getComponent("db").transaction();
82
-
83
-
84
80
  customer.load(data, "Customer");//load customer data
85
81
  let cus: any = await customer.save({}, {transaction});
86
82
 
@@ -117,7 +113,20 @@ class ApiController extends Controller {
117
113
 
118
114
  @get("order/list")
119
115
  async listOrder(req: Request, res: Response) {
120
- let product = await Products.findAll({include: [ProductModels.model()]});
116
+ let product = await ModelManager.Products.findAll({include: [ModelManager.ProductModels.model()]});
117
+ return res.json(product)
118
+
119
+ }
120
+
121
+ @get("categories")
122
+ async Categories(req: Request, res: Response) {
123
+ let product = await ModelManager.Categories.findAll( {include:[
124
+ {
125
+ model: ModelManager.Products.model(),
126
+ // as: 'product',
127
+ // through: { attributes: [] } // Hide unwanted `PlayerGameTeam` nested object from results
128
+ }
129
+ ]} );
121
130
  return res.json(product)
122
131
 
123
132
  }
@@ -16,8 +16,8 @@ import {get,post,controller} from "../../decorator";
16
16
  import {ValidationHttpException,ForbiddenHttpException} from "../../base";
17
17
  import {KeyCloakHttpBearerAuth} from "../../filters/auth/KeyCloakHttpBearerAuth";
18
18
 
19
- import {OrderClass, Order} from "../Models/Order";
20
- import {CustomerClass, Customer} from "../Models/Customer";
19
+ import {OrderClass} from "../Models/Order";
20
+ import {CustomerClass} from "../Models/Customer";
21
21
 
22
22
  @controller("/oauth2.0")
23
23
  class ApiController extends Controller {
@@ -46,9 +46,9 @@ class ApiController extends Controller {
46
46
  data.Customer["2fa"] = "true";
47
47
 
48
48
  //Customer Model Create
49
- let customer: CustomerClass = Customer;
49
+ let customer: CustomerClass = new CustomerClass();
50
50
  //Order Model Create
51
- let order: OrderClass = Order ;
51
+ let order: OrderClass = new OrderClass() ;
52
52
 
53
53
 
54
54
  let transaction
@@ -4,7 +4,7 @@
4
4
  * E-mail: cihan@chy.com.tr
5
5
  * Github:https://github.com/cihan53/
6
6
  */
7
- import {DataTypes, Model} from "../../base";
7
+ import {DataTypes, Model, ModelManager, Relation} from "../../base";
8
8
 
9
9
  export class CategoriesClass extends Model {
10
10
  [x: string]: any;
@@ -29,8 +29,19 @@ export class CategoriesClass extends Model {
29
29
  }
30
30
  }
31
31
 
32
+ relations(): Relation[] {
33
+ return [
34
+ {
35
+ type: "belongsToMany",
36
+ foreignKey: "category_id",
37
+ sourceKey: "id",
38
+ model: ModelManager.Products.model(),
39
+ through: ModelManager.ProductToCategories.model()
40
+ }
41
+ ]
42
+ }
32
43
 
33
44
  }
34
45
 
35
- const Categories = new CategoriesClass();
36
- export {Categories};
46
+ // const Categories = new CategoriesClass();
47
+ // export {Categories};
@@ -108,8 +108,8 @@ export class CustomerClass extends Model {
108
108
 
109
109
  }
110
110
 
111
- const Customer = new CustomerClass();
112
- export {Customer};
111
+ // const Customer = new CustomerClass();
112
+ // export {Customer};
113
113
 
114
114
 
115
115
 
@@ -1,5 +1,5 @@
1
1
  import {DataTypes, Model, Relation} from "../../base";
2
- import {OrderItem} from "./OrderItem";
2
+ import {OrderItemClass} from "./OrderItem";
3
3
 
4
4
  export class OrderClass extends Model {
5
5
  [x: string]: any;
@@ -50,15 +50,15 @@ export class OrderClass extends Model {
50
50
  type: "hasOne",
51
51
  sourceKey: "order_id",
52
52
  foreignKey: "id",
53
- model: OrderItem.model()
53
+ model: (new OrderItemClass()).model()
54
54
  }
55
55
  ]
56
56
  }
57
57
  }
58
58
 
59
- const Order = new OrderClass()
60
- export {Order};
61
-
59
+ // const Order = new OrderClass()
60
+ // export {Order};
61
+ //
62
62
 
63
63
 
64
64
 
@@ -20,8 +20,8 @@ export class OrderItemClass extends Model {
20
20
  }
21
21
 
22
22
  }
23
- const OrderItem = new OrderItemClass()
24
- export { OrderItem };
23
+ // const OrderItem = new OrderItemClass()
24
+ // export { OrderItem };
25
25
 
26
26
 
27
27
 
@@ -4,8 +4,7 @@
4
4
  * E-mail: cihan@chy.com.tr
5
5
  * Github:https://github.com/cihan53/
6
6
  */
7
- import {DataTypes, Model, Relation} from "../../base";
8
- import {Products} from "./Products";
7
+ import {DataTypes, ModelManager, Model, Relation} from "../../base";
9
8
 
10
9
  export class ProductModelsClass extends Model {
11
10
  [x: string]: any;
@@ -40,11 +39,11 @@ export class ProductModelsClass extends Model {
40
39
  type: "hasOne",
41
40
  foreignKey: "id",
42
41
  sourceKey: "category_id",
43
- model: Products.model()
42
+ model: ModelManager.Products.model()
44
43
  }
45
44
  ]
46
45
  }
47
46
  }
48
47
 
49
- const ProductModels = new ProductModelsClass();
50
- export {ProductModels}
48
+ // const ProductModels = new ProductModelsClass();
49
+ // export {ProductModels}
@@ -4,7 +4,7 @@
4
4
  * E-mail: cihan@chy.com.tr
5
5
  * Github:https://github.com/cihan53/
6
6
  */
7
- import {DataTypes, Model} from "../../base";
7
+ import {DataTypes, ModelManager, Model, Relation} from "../../base";
8
8
 
9
9
  export class ProductToCategoriesClass extends Model {
10
10
  [x: string]: any;
@@ -21,7 +21,7 @@ export class ProductToCategoriesClass extends Model {
21
21
  type: DataTypes.INTEGER,
22
22
  allowNull: false
23
23
  },
24
- categories_id: {
24
+ category_id: {
25
25
  type: DataTypes.INTEGER,
26
26
  allowNull: false
27
27
  }
@@ -29,7 +29,18 @@ export class ProductToCategoriesClass extends Model {
29
29
  }
30
30
  }
31
31
 
32
+ // relations(): Relation[] {
33
+ // return [
34
+ // {
35
+ // type: "hasMany",
36
+ // foreignKey: "category_id",
37
+ // sourceKey: "id",
38
+ // model: ModelManager.Categories.model(),
39
+ // }
40
+ // ]
41
+ // }
42
+
32
43
  }
33
44
 
34
- const ProductToCategories = new ProductToCategoriesClass()
35
- export {ProductToCategories}
45
+ // const ProductToCategories = new ProductToCategoriesClass()
46
+ // export {ProductToCategories}
@@ -4,8 +4,8 @@
4
4
  * E-mail: cihan@chy.com.tr
5
5
  * Github:https://github.com/cihan53/
6
6
  */
7
- import {DataTypes, Model, Relation} from "../../base";
8
- import {ProductModels} from "./ProductModels";
7
+ import {DataTypes, ModelManager, Model, Relation} from "../../base";
8
+
9
9
 
10
10
  export class ProductsClass extends Model {
11
11
  [x: string]: any;
@@ -36,14 +36,15 @@ export class ProductsClass extends Model {
36
36
  relations(): Relation[] {
37
37
  return [
38
38
  {
39
- type: "hasOne",
40
- foreignKey: "id",
41
- sourceKey: "model_id",
42
- model: ProductModels.model()
39
+ type: "belongsToMany",
40
+ foreignKey: "product_id",
41
+ sourceKey: "id",
42
+ model: ModelManager.Categories.model(),
43
+ through: ModelManager.ProductToCategories.model()
43
44
  }
44
45
  ]
45
46
  }
46
47
  }
47
48
 
48
- const Products = new ProductsClass()
49
- export {Products}
49
+ // const Products = new ProductsClass()
50
+ // export {Products}
@@ -56,5 +56,5 @@ export class StocksClass extends Model {
56
56
  }
57
57
  }
58
58
 
59
- const Stocks = new StocksClass();
60
- export {Stocks}
59
+ // const Stocks = new StocksClass();
60
+ // export {Stocks}
@@ -33,5 +33,5 @@ export class UserPermissionClass extends Model {
33
33
  }
34
34
  }
35
35
 
36
- const UserPermission = new UserPermissionClass();
37
- export {UserPermission}
36
+ // const UserPermission = new UserPermissionClass();
37
+ // export {UserPermission}
@@ -0,0 +1,19 @@
1
+ /*
2
+ *
3
+ * Copyright (c) 2021. Chy Bilgisayar Bilisim
4
+ * Author: Cihan Ozturk
5
+ * E-mail: cihan@chy.com.tr
6
+ * Github:https://github.com/cihan53/
7
+ *
8
+ */
9
+ import {ModelManager} from "../../base";
10
+ // import {Order, OrderClass} from "./Order";
11
+ // import {Customer, CustomerClass} from "./Customer";
12
+ // import {Products} from "./Products";
13
+ // import {ProductModels} from "./ProductModels";
14
+ // import {Categories} from "./Categories";
15
+ // import {ProductToCategories} from "./ProductToCategories";
16
+ //
17
+ // Dependencies._register({Order, Customer,CustomerClass,OrderClass, Products, ProductModels, Categories, ProductToCategories});
18
+ //
19
+ // console.log("denmemem")
package/Examples/index.ts CHANGED
@@ -13,6 +13,7 @@ import {WebUser} from "../web/WebUser";
13
13
  import {User} from "./Models/User";
14
14
  import {DbConnection} from "../base";
15
15
 
16
+
16
17
  let config = {
17
18
  port: process.env.PORT,
18
19
  controllerpath: "C:\\PROJELER\\github\\Chy-Nodejs-Framework\\Examples\\Controllers",