@bee.js/node 0.0.41 → 0.0.43

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 (2) hide show
  1. package/lib/DBA/beeDBA.js +124 -113
  2. package/package.json +1 -1
package/lib/DBA/beeDBA.js CHANGED
@@ -1,122 +1,133 @@
1
- const beeORM = require('../ORM/beeORM')
2
- const beeHive = require('../../beehive')
1
+ const beeORM = require("../ORM/beeORM");
2
+ const beeHive = require("../../beehive");
3
3
 
4
4
  const fieldType = {
5
- mysql : function(field) {
6
- let type = field.type.split(' ')[0].trim()
7
-
8
- switch (type) {
9
- case 'integer':
10
- case 'int':
11
- type = 'int'
12
- break
13
- case 'decimal':
14
- type = `decimal(${(field.length || 10.1).toString().replace('.',',')})`
15
- break
16
-
17
- case 'string':
18
- case 'varchar':
19
- type = `varchar(${field.length || 45})`
20
- break
21
- case 'guid':
22
- type = `binary(16)`
23
- field.ai = false
24
- break
25
- case 'char':
26
- type = `char(${field.length || 5})`
27
- break
28
- case 'file':
29
- type = 'blob'
30
- break
31
- }
32
- return type
33
- + (!field.null ? ' NOT NULL' : '')
34
- + (field.ai ? ' AUTO_INCREMENT' : '')
35
- + (field.default !== undefined ? ` DEFAULT ${field.default}` : '')
36
- + (field.default !== undefined && field.onUpdate ? ` ON UPDATE ${field.default}` : '')
5
+ mysql: function (field) {
6
+ let type = field.type.split(" ")[0].trim();
7
+
8
+ switch (type) {
9
+ case "integer":
10
+ case "int":
11
+ type = "int";
12
+ break;
13
+ case "decimal":
14
+ type = `decimal(${(field.length || 10.1)
15
+ .toString()
16
+ .replace(".", ",")})`;
17
+ break;
18
+
19
+ case "string":
20
+ case "varchar":
21
+ type = `varchar(${field.length || 45})`;
22
+ break;
23
+ case "guid":
24
+ type = `binary(16)`;
25
+ field.ai = false;
26
+ break;
27
+ case "char":
28
+ type = `char(${field.length || 5})`;
29
+ break;
30
+ case "file":
31
+ type = "blob";
32
+ break;
37
33
  }
38
- }
34
+ return (
35
+ type +
36
+ (!field.null ? " NOT NULL" : "") +
37
+ (field.ai ? " AUTO_INCREMENT" : "") +
38
+ (field.default !== undefined ? ` DEFAULT ${field.default}` : "") +
39
+ (field.default !== undefined && field.onUpdate
40
+ ? ` ON UPDATE ${field.default}`
41
+ : "")
42
+ );
43
+ },
44
+ };
39
45
 
40
46
  module.exports.actions = {
41
- mysql : {
42
- MODEL_STATEMENT_EXECUTE : async function(req, res) {
43
- let hive = beeHive()
44
- let data = await hive.dbExec(req.body.statement_execute)
45
-
46
- res.status(200).send({data: data})
47
- },
48
-
49
- MODEL_CREATE_DB : function(req, res) {
50
- let configsDB = global.configs.databases.default
51
- let models = global.models
52
- let SQL = ['','']
53
-
54
- //TODO create db with user permissions
55
-
56
- Object
57
- .keys(models)
58
- .map((model)=> {
59
- if(!req.body.models[model]._checked) return
60
-
61
- SQL[0] += this.MODEL_CREATE_TABLE(models[model], configsDB)
62
- SQL[1] += models[model].relations
63
- ? this.MODEL_CREATE_CONSTRAINT(models[model], configsDB)
64
- : ''
65
- })
66
-
67
- res.status(200).send({data: SQL.join("")})
68
- },
69
-
70
- MODEL_CREATE_TABLE : function(model, configsDB) {
71
- let q = beeORM.quote
72
- let SQL = ''
73
-
74
-
75
- SQL = `CREATE TABLE IF NOT EXISTS ${q(model.table)} (`
76
-
77
- for(let field in model.schema)
78
- SQL += `\n ${q(field)} ${fieldType[configsDB.drive](model.schema[field])},` // TODO criar funcao para relacionamentos.
79
-
80
- SQL = SQL.slice(0, SQL.length - 1)
81
-
82
- if(model.indexes) {
83
- if(model.indexes.keys)
84
- SQL += `,\n PRIMARY KEY (${q(model.indexes.keys)})`
85
-
86
- //TODO fazer uniques e cia. colocar em funcao.
87
- }
88
-
89
- SQL += `\n) ENGINE=${configsDB.engine} DEFAULT CHARSET=${configsDB.charset};\n\n`
90
-
91
- return SQL
92
- },
93
-
94
- MODEL_CREATE_CONSTRAINT : function(model, configsDB) {
95
- let q = beeORM.quote
96
- let SQL = '\n\n\n\n'
97
-
98
- SQL += `----- Constraints for table ${q(model.table)} -----\n\n`
99
- SQL += `ALTER TABLE ${q(model.table)}\n`
100
-
101
- for(let field in model.relations)
102
- SQL += ` ADD CONSTRAINT ${q('FK_'+model.relations[field].split('.')[0])}
103
- FOREIGN KEY ${q(field)}
104
- REFERENCES ${model.relations[field].split('.')[0]}(${q('FK_'+model.relations[field].split('.')[0])})
105
- ON DELETE CASCATE ON UPDATE CASCATE;
106
- \n\n`
107
-
108
- //SQL += `-- COMMIT; \n\n`
109
-
110
- return SQL
111
- }
47
+ mysql: {
48
+ MODEL_STATEMENT_EXECUTE: async function (req, res) {
49
+ let hive = beeHive();
50
+ let data = await hive.dbExec(req.body.statement_execute);
51
+
52
+ res.status(200).send({ data: data });
112
53
  },
113
54
 
114
- mssql : {
115
- // TODO next version
55
+ MODEL_CREATE_DB: function (req, res) {
56
+ let configsDB = global.configs.databases.default;
57
+ let models = global.models;
58
+ let SQL = ["", ""];
59
+
60
+ //TODO create db with user permissions
61
+
62
+ Object.keys(models).map((model) => {
63
+ if (!req.body.models[model]._checked) return;
64
+
65
+ SQL[0] += this.MODEL_CREATE_TABLE(models[model], configsDB);
66
+ SQL[1] += models[model].relations
67
+ ? this.MODEL_CREATE_CONSTRAINT(models[model], configsDB)
68
+ : "";
69
+ });
70
+
71
+ res.status(200).send({ data: SQL.join("") });
116
72
  },
117
73
 
118
- mongoDB : {
119
- // TODO next version
120
- }
121
-
122
- }
74
+ MODEL_CREATE_TABLE: function (model, configsDB) {
75
+ let q = beeORM.quote;
76
+ let SQL = "";
77
+
78
+ SQL = `CREATE TABLE IF NOT EXISTS ${q(model.table)} (`;
79
+
80
+ for (let field in model.schema)
81
+ SQL += `\n ${q(field)} ${fieldType[configsDB.drive](
82
+ model.schema[field]
83
+ )},`; // TODO criar funcao para relacionamentos.
84
+
85
+ SQL = SQL.slice(0, SQL.length - 1);
86
+
87
+ if (model.indexes) {
88
+ if (model.indexes.keys)
89
+ SQL += `,\n PRIMARY KEY (${q(model.indexes.keys)})`;
90
+
91
+ //TODO fazer uniques e cia. colocar em funcao.
92
+ }
93
+
94
+ SQL += `\n) ENGINE=${configsDB.engine} DEFAULT CHARSET=${configsDB.charset};\n\n`;
95
+
96
+ return SQL;
97
+ },
98
+
99
+ MODEL_CREATE_CONSTRAINT: function (model, configsDB) {
100
+ let q = beeORM.quote;
101
+ let SQL = "\n\n\n\n";
102
+
103
+ SQL += `/*----- Constraints for table ${q(model.table)} -----*/\n\n`;
104
+ SQL += `ALTER TABLE ${q(model.table)}\n`;
105
+
106
+ for (let field in model.relations)
107
+ SQL += ` ADD CONSTRAINT ${q(
108
+ `FK_${model.relations[field].split(".")[0]}_X_${
109
+ model.table
110
+ }_${field}`.slice(0, 64)
111
+ )}
112
+ FOREIGN KEY (${field})
113
+ REFERENCES ${
114
+ model.relations[field].split(".")[0]
115
+ } (${field})
116
+ ${"ON DELETE CASCADE"}
117
+ ${"ON UPDATE CASCADE"};
118
+ \n\n`;
119
+
120
+ //SQL += `-- COMMIT; \n\n`
121
+
122
+ return SQL;
123
+ },
124
+ },
125
+
126
+ mssql: {
127
+ // TODO next version
128
+ },
129
+
130
+ mongoDB: {
131
+ // TODO next version
132
+ },
133
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bee.js/node",
3
- "version": "0.0.41",
3
+ "version": "0.0.43",
4
4
  "description": "A JavaScript framework for making Node.js API´s",
5
5
  "main": "index.js",
6
6
  "scripts": {