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 +44 -11
- package/Examples/Controllers/ApiController.ts +19 -10
- package/Examples/Controllers/KeyCloakController.ts +4 -4
- package/Examples/Models/Categories.ts +14 -3
- package/Examples/Models/Customer.ts +2 -2
- package/Examples/Models/Order.ts +5 -5
- package/Examples/Models/OrderItem.ts +2 -2
- package/Examples/Models/ProductModels.ts +4 -5
- package/Examples/Models/ProductToCategories.ts +15 -4
- package/Examples/Models/Products.ts +9 -8
- package/Examples/Models/Stocks.ts +2 -2
- package/Examples/Models/UserPermission.ts +2 -2
- package/Examples/Models/index.ts +19 -0
- package/Examples/index.ts +1 -0
- package/Examples/log/app.log +5212 -0
- package/Examples/log/errors.log +1446 -0
- package/Examples/tsconfig.json +2 -1
- package/README.md +2 -4
- package/base/Model.ts +37 -33
- package/base/ModelManager.ts +14 -0
- package/base/index.ts +1 -0
- package/dist/BaseChyz.js +37 -4
- package/dist/BaseChyz.js.map +1 -1
- package/dist/base/Model.js +32 -28
- package/dist/base/Model.js.map +1 -1
- package/dist/base/ModelManager.js +17 -0
- package/dist/base/ModelManager.js.map +1 -0
- package/dist/base/index.js +1 -0
- package/dist/base/index.js.map +1 -1
- package/dist/package.json +7 -5
- package/package.json +6 -5
- package/dist/README.md +0 -270
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
|
-
|
|
22
|
-
|
|
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
|
|
71
|
+
let customer = ModelManager.Customer;
|
|
74
72
|
//Order Model Create
|
|
75
|
-
let 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
|
|
20
|
-
import {CustomerClass
|
|
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 =
|
|
49
|
+
let customer: CustomerClass = new CustomerClass();
|
|
50
50
|
//Order Model Create
|
|
51
|
-
let order: OrderClass =
|
|
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};
|
package/Examples/Models/Order.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {DataTypes, Model, Relation} from "../../base";
|
|
2
|
-
import {
|
|
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:
|
|
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
|
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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: "
|
|
40
|
-
foreignKey: "
|
|
41
|
-
sourceKey: "
|
|
42
|
-
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}
|
|
@@ -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