beech-api 3.8.0 → 3.9.75
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/LICENSE +21 -21
- package/README.md +1715 -1244
- package/index.js +2 -2
- package/package.json +92 -83
- package/packages/cli/beech +9 -10
- package/packages/cli/bin/beech-app.js +389 -389
- package/packages/cli/bin/beech-service.js +262 -132
- package/packages/cli/core/auth/Credentials.js +174 -147
- package/packages/cli/core/auth/Passport.js +664 -592
- package/packages/cli/core/auth/_Request.js +12 -12
- package/packages/cli/core/configure/_gitignore +16 -15
- package/packages/cli/core/configure/_sequelizerc +9 -9
- package/packages/cli/core/configure/app.config-basic.js +55 -55
- package/packages/cli/core/configure/app.config-sequelize.js +88 -88
- package/packages/cli/core/configure/beech.config.js +9 -9
- package/packages/cli/core/configure/global.config-basic.js +8 -8
- package/packages/cli/core/configure/global.config-sequelize.js +8 -8
- package/packages/cli/core/configure/jest.config.js +6 -6
- package/packages/cli/core/configure/jsconfig.json +8 -7
- package/packages/cli/core/configure/passport.config.js +97 -97
- package/packages/cli/core/databases/mysql.js +94 -95
- package/packages/cli/core/databases/sequelize.js +187 -179
- package/packages/cli/core/databases/test.js +251 -170
- package/packages/cli/core/file-walk/file-walk.js +35 -35
- package/packages/cli/core/generator/_endpoints +15 -15
- package/packages/cli/core/generator/_endpoints_basic +42 -42
- package/packages/cli/core/generator/_help +26 -18
- package/packages/cli/core/generator/_help_create +10 -10
- package/packages/cli/core/generator/_help_service +10 -10
- package/packages/cli/core/generator/_helpers +9 -9
- package/packages/cli/core/generator/_helpers_basic +22 -22
- package/packages/cli/core/generator/_models +6 -29
- package/packages/cli/core/generator/_models_basic +13 -22
- package/packages/cli/core/generator/_package +23 -20
- package/packages/cli/core/generator/_scheduler +32 -22
- package/packages/cli/core/generator/_spec +29 -29
- package/packages/cli/core/generator/index.js +1081 -738
- package/packages/cli/core/helpers/2fa.js +106 -85
- package/packages/cli/core/helpers/math.js +115 -103
- package/packages/cli/core/helpers/poolEntity.js +103 -59
- package/packages/cli/core/index.js +264 -188
- package/packages/cli/core/middleware/express/duplicateRequest.js +16 -12
- package/packages/cli/core/middleware/express/jwtCheckAllow.js +86 -68
- package/packages/cli/core/middleware/express/rateLimit.js +29 -17
- package/packages/cli/core/middleware/express/slowDown.js +2 -2
- package/packages/cli/core/middleware/index.js +6 -6
- package/packages/cli/core/middleware/origin/guard/advance.js +75 -74
- package/packages/cli/core/middleware/origin/whitelist/cors.js +94 -94
- package/packages/cli/core/services/http.express.js +481 -441
- package/packages/cli/core/test/check-node.js +21 -0
- package/packages/cli/core/test/utils.js +7 -7
- package/packages/cli/entry +10 -0
- package/packages/lib/index.js +6 -6
- package/packages/lib/src/endpoint.js +947 -532
- package/packages/lib/src/guard.js +60 -60
- package/packages/lib/src/salt.js +3 -3
- package/packages/lib/src/schema.js +96 -93
- package/packages/lib/src/specificExpress.js +7 -7
- package/packages/lib/src/user.js +271 -271
|
@@ -1,170 +1,251 @@
|
|
|
1
|
-
const logUpdate = require("log-update");
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
let testSql = {};
|
|
6
|
-
|
|
7
|
-
function filterDbIsTrue(dbConfig, cb) {
|
|
8
|
-
try {
|
|
9
|
-
let dbIsTrue = [];
|
|
10
|
-
dbConfig.filter((e, k) => {
|
|
11
|
-
if (e.is_connect) {
|
|
12
|
-
dbIsTrue.push(e);
|
|
13
|
-
}
|
|
14
|
-
if (dbConfig.length == k + 1) {
|
|
15
|
-
if(dbIsTrue.length) {
|
|
16
|
-
console.log('\n[102m[90m Pre-Flight [0m [0mTesting Database connection:');
|
|
17
|
-
}
|
|
18
|
-
setTimeout(() => {
|
|
19
|
-
cb(null, dbIsTrue);
|
|
20
|
-
},
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
} catch (error) {
|
|
24
|
-
cb(error, null);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function testConnectInProcess
|
|
29
|
-
try {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
|
|
1
|
+
const logUpdate = require("log-update");
|
|
2
|
+
const { DeHashIt, M, X } = require(__dirname + "/../helpers/math");
|
|
3
|
+
const Sequelize = require('sequelize');
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
let testSql = {};
|
|
6
|
+
|
|
7
|
+
function filterDbIsTrue(dbConfig, cb) {
|
|
8
|
+
try {
|
|
9
|
+
let dbIsTrue = [];
|
|
10
|
+
dbConfig.filter((e, k) => {
|
|
11
|
+
if (e.is_connect) {
|
|
12
|
+
dbIsTrue.push(e);
|
|
13
|
+
}
|
|
14
|
+
if (dbConfig.length == k + 1) {
|
|
15
|
+
if(dbIsTrue.length) {
|
|
16
|
+
console.log('\n[102m[90m Pre-Flight [0m [0mTesting Database connection:');
|
|
17
|
+
}
|
|
18
|
+
setTimeout(() => {
|
|
19
|
+
cb(null, dbIsTrue);
|
|
20
|
+
}, 200);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
} catch (error) {
|
|
24
|
+
cb(error, null);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function testConnectInProcess(database_config, dbConnTotal, cb) {
|
|
29
|
+
try {
|
|
30
|
+
// Recursive test connection
|
|
31
|
+
let val = database_config.shift();
|
|
32
|
+
if (val) {
|
|
33
|
+
initSequelize(val, true, async (err, sq) => {
|
|
34
|
+
if (err) {
|
|
35
|
+
//console.log("[101m Failed [0m Can't connect to connection name:[36m", val.name, "[0m\n", err);
|
|
36
|
+
return cb(err, null, null);
|
|
37
|
+
} else {
|
|
38
|
+
// Test connection
|
|
39
|
+
await sq.authenticate()
|
|
40
|
+
.then(() => {
|
|
41
|
+
// Database some is true perfectly.
|
|
42
|
+
if (database_config.length == 0) {
|
|
43
|
+
if (sq) {
|
|
44
|
+
testSql[ val.name ] = sq;
|
|
45
|
+
//console.log("DB true, Perfectly.", val.name);
|
|
46
|
+
return cb(null, true, testSql);
|
|
47
|
+
}
|
|
48
|
+
} else {
|
|
49
|
+
testSql[ val.name ] = sq;
|
|
50
|
+
testConnectInProcess(database_config, dbConnTotal, cb);
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
.catch(err => {
|
|
54
|
+
logit(`[91m[X][0m [91m[${val.dialect}] [0m[36m${val.name}[0m`);
|
|
55
|
+
console.log("[101m Failed [0m Unable to connect to the database:[36m", val.name, "[0m\n", err);
|
|
56
|
+
return cb(err, null, null);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
} else if (!dbConnTotal) {
|
|
61
|
+
// All Database is falsly perfectly.
|
|
62
|
+
//console.log("DB all false, Perfectly.");
|
|
63
|
+
return cb(null, true, testSql);
|
|
64
|
+
}
|
|
65
|
+
} catch (error) {
|
|
66
|
+
return cb(error, null, null);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function disConnectTestDB(dbConfigTruthy, dbs, cb) {
|
|
71
|
+
try {
|
|
72
|
+
dbConfigTruthy.map((e, k) => {
|
|
73
|
+
// Closing database
|
|
74
|
+
if (dbs[ e.name ].close()) {
|
|
75
|
+
if (dbConfigTruthy.length == k + 1) {
|
|
76
|
+
cb(null, dbConfigTruthy);
|
|
77
|
+
}
|
|
78
|
+
} else {
|
|
79
|
+
cb(`Close database failed, ${e.name}`, null);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
} catch (error) {
|
|
83
|
+
cb(error, null);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function logit(msg, next = false) {
|
|
88
|
+
logUpdate(msg);
|
|
89
|
+
if(next) {
|
|
90
|
+
logUpdate.done();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function initSequelize(val, testConn = true, cb) {
|
|
95
|
+
try {
|
|
96
|
+
const promise = new Promise((resolve) => {
|
|
97
|
+
// check hash ?
|
|
98
|
+
if(val.username && val.password) {
|
|
99
|
+
if(val.username.length < 55 || val.password < 55) {
|
|
100
|
+
return cb("[91mERR:[0m Incorrect Hash access for connect to database, Please Hashing your access by command `beech hash:<your_access>`\n", null);
|
|
101
|
+
}
|
|
102
|
+
let accessDb = [];
|
|
103
|
+
[val.username, val.password].forEach((e, k) => {
|
|
104
|
+
DeHashIt(e.toString(), null, (17).toString().slice(0,-1).length, (err, d) => {
|
|
105
|
+
if (err) {
|
|
106
|
+
return cb("Hash access error", err);
|
|
107
|
+
}
|
|
108
|
+
accessDb[k] = d.split("sh,")[1].split(M(X).toString().slice(0,2) + M(X).toString())[0].slice(0,-1);
|
|
109
|
+
if (accessDb[0] && accessDb[1]) {
|
|
110
|
+
accessDb[2] = val.dialect;
|
|
111
|
+
resolve(accessDb);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
} else {
|
|
116
|
+
resolve([null, null]);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
Promise.all([promise]).then(final => {
|
|
120
|
+
/**
|
|
121
|
+
* The final callback variable : [['hashed', 'hashed', 'dialect']]
|
|
122
|
+
*
|
|
123
|
+
* final[0][0] : username hashed
|
|
124
|
+
* final[0][1] : password hashed
|
|
125
|
+
* final[0][2] : dialect
|
|
126
|
+
*
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
// Check test connection for stdout pre-flight
|
|
130
|
+
if(testConn) {
|
|
131
|
+
// stdout pre-flight connection
|
|
132
|
+
logit(`[36m[+][0m [91m[${val.dialect}] [0m[36m${val.name}[0m`);
|
|
133
|
+
}
|
|
134
|
+
fs.readFile("./global.config.js", 'utf8', (err, data) => {
|
|
135
|
+
if (err) {
|
|
136
|
+
console.log("\n[101m Fatal [0m Can't read `global.config.js` file.\n", err);
|
|
137
|
+
return; // break;
|
|
138
|
+
} else {
|
|
139
|
+
let buffer = Buffer.from(data);
|
|
140
|
+
let buf2str = buffer.toString();
|
|
141
|
+
let buf2json = JSON.parse(JSON.stringify(buf2str));
|
|
142
|
+
let pool_base = /global.pool_base\s+=\s+(?:"|')([^"]+)(?:"|')(?:\r|\n|$|;|\r)/i.exec(buf2json);
|
|
143
|
+
if (pool_base) {
|
|
144
|
+
if(pool_base == "basic") {
|
|
145
|
+
if(final[0][2] != "mysql") {
|
|
146
|
+
return cb(`The Basic pool engine not support with: ${val.dialect}, Please use Sequelize engine.`, null);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
// create connection
|
|
153
|
+
const sq = new Sequelize({
|
|
154
|
+
dialect: val.dialect || "mysql",
|
|
155
|
+
host: (val.host == "localhost" || val.host == "http://localhost") ? "127.0.0.1" : val.host,
|
|
156
|
+
username: final[0][0],
|
|
157
|
+
password: final[0][1],
|
|
158
|
+
database: val.database,
|
|
159
|
+
port: val.port,
|
|
160
|
+
storage: val.storage || ":memory:",
|
|
161
|
+
protocol: val.protocol || null,
|
|
162
|
+
logging: val.logging || false,
|
|
163
|
+
dialectOptions: {
|
|
164
|
+
socketPath: ((val.dialectOptions) ? ((val.dialectOptions.socketPath) ? val.dialectOptions.socketPath : "") : ""), //Applications/MAMP/tmp/mysql/mysql.sock
|
|
165
|
+
supportBigNumbers: ((val.dialectOptions) ? ((val.dialectOptions.supportBigNumbers) ? val.dialectOptions.supportBigNumbers : false) : false),
|
|
166
|
+
bigNumberStrings: ((val.dialectOptions) ? ((val.dialectOptions.bigNumberStrings) ? val.dialectOptions.bigNumberStrings : false) : false),
|
|
167
|
+
options: ((val.dialectOptions) ? ((val.dialectOptions.options) ? ({ encrypt: false, ...val.dialectOptions.options }) : { encrypt: false }) : { encrypt: false }),
|
|
168
|
+
},
|
|
169
|
+
omitNull: val.omitNull || false,
|
|
170
|
+
native: val.native || false,
|
|
171
|
+
define: {
|
|
172
|
+
underscored: ((val.define) ? ((val.define.underscored) ? val.define.underscored : false) : false),
|
|
173
|
+
freezeTableName: ((val.define) ? ((val.define.freezeTableName === false) ? val.define.freezeTableName : true) : true),
|
|
174
|
+
charset: ((val.define) ? ((val.define.charset) ? val.define.charset : "utf8") : "utf8"),
|
|
175
|
+
dialectOptions: {
|
|
176
|
+
collate: ((val.define) ? ((val.define.dialectOptions) ? ((val.define.dialectOptions.timestamps) ? val.define.dialectOptions.timestamps : "utf8_general_ci") : "utf8_general_ci") : "utf8_general_ci"),
|
|
177
|
+
},
|
|
178
|
+
timestamps: ((val.define) ? ((val.define.timestamps) ? val.define.timestamps : false) : false),
|
|
179
|
+
},
|
|
180
|
+
sync: {
|
|
181
|
+
force: ((val.sync) ? ((val.sync.force) ? val.sync.force : false) : false),
|
|
182
|
+
},
|
|
183
|
+
pool: {
|
|
184
|
+
max: ((val.pool) ? ((val.pool.max) ? val.pool.max : 5) : 5),
|
|
185
|
+
idle: ((val.pool) ? ((val.pool.idle) ? val.pool.idle : 30000) : 30000),
|
|
186
|
+
acquire: ((val.pool) ? ((val.pool.acquire) ? val.pool.acquire : 60000) : 60000),
|
|
187
|
+
},
|
|
188
|
+
isolationLevel: val.isolationLevel || "Transaction.ISOLATION_LEVELS.REPEATABLE_READ",
|
|
189
|
+
query: {
|
|
190
|
+
raw: ((val.query) ? ((val.query.raw) ? val.query.raw : true) : true),
|
|
191
|
+
nest: ((val.query) ? ((val.query.nest) ? val.query.nest : true) : true),
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
// Check test connection for stdout pre-flight (mark)
|
|
195
|
+
if(testConn) {
|
|
196
|
+
logit(`[92m[/][0m [91m[${val.dialect}] [0m[36m${val.name}[0m`, true);
|
|
197
|
+
}
|
|
198
|
+
cb(false, sq);
|
|
199
|
+
}).catch(err => {
|
|
200
|
+
console.log(`[103m[90m Warning [0m[0m Connection name \`[93m${val.name}[0m\``, err);
|
|
201
|
+
});
|
|
202
|
+
} catch (error) {
|
|
203
|
+
cb(error, null);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
function connectForGenerateModel(dbConnectName, tableName, databaseConfig, cb) {
|
|
208
|
+
/**
|
|
209
|
+
* Callback
|
|
210
|
+
*
|
|
211
|
+
* err String : Error message
|
|
212
|
+
* tableSchema Object : Schema of table
|
|
213
|
+
* tableName String : table name
|
|
214
|
+
*
|
|
215
|
+
*/
|
|
216
|
+
const connectionChoose = databaseConfig.find(e => e.name === dbConnectName);
|
|
217
|
+
initSequelize(connectionChoose, false, async (err, sq) => {
|
|
218
|
+
if (err) {
|
|
219
|
+
return cb(err, null, null);
|
|
220
|
+
}
|
|
221
|
+
// Connection
|
|
222
|
+
await sq.authenticate()
|
|
223
|
+
.then(() => {
|
|
224
|
+
getTableSchema(sq, tableName, (errSchema, tableSchema) => {
|
|
225
|
+
if(errSchema) {
|
|
226
|
+
cb(errSchema, null, null);
|
|
227
|
+
} else {
|
|
228
|
+
// Closing database
|
|
229
|
+
sq.close();
|
|
230
|
+
// Callback
|
|
231
|
+
cb(null, tableSchema, tableName);
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
})
|
|
235
|
+
.catch(err => {
|
|
236
|
+
cb(err, null, null);
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
async function getTableSchema(sq, tableName, cb) {
|
|
242
|
+
try {
|
|
243
|
+
const queryInterface = sq.getQueryInterface();
|
|
244
|
+
const schema = await queryInterface.describeTable(tableName);
|
|
245
|
+
cb(null, schema);
|
|
246
|
+
} catch (error) {
|
|
247
|
+
cb("Fetching table schema " + error, null);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
module.exports = { filterDbIsTrue, testConnectInProcess, disConnectTestDB, connectForGenerateModel }
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* file walk autoload all file
|
|
3
|
-
*
|
|
4
|
-
*/
|
|
5
|
-
exports.fileWalk = (files) => {
|
|
6
|
-
return new Promise((resolve, reject) => {
|
|
7
|
-
try {
|
|
8
|
-
if (files.length) {
|
|
9
|
-
let route;
|
|
10
|
-
files.map((val, key) => {
|
|
11
|
-
let endpointFile = val.replace(".js", "");
|
|
12
|
-
try {
|
|
13
|
-
route = require(endpointFile);
|
|
14
|
-
if (route instanceof Error) {
|
|
15
|
-
console.log(out.message);
|
|
16
|
-
reject(error);
|
|
17
|
-
}
|
|
18
|
-
route.init();
|
|
19
|
-
if (files.length == key + 1) {
|
|
20
|
-
resolve(true);
|
|
21
|
-
}
|
|
22
|
-
} catch (error) {
|
|
23
|
-
console.log(error);
|
|
24
|
-
reject(error);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
} else {
|
|
28
|
-
resolve(true);
|
|
29
|
-
}
|
|
30
|
-
} catch (error) {
|
|
31
|
-
console.log(error);
|
|
32
|
-
reject(error);
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* file walk autoload all file
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
5
|
+
exports.fileWalk = (files) => {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
try {
|
|
8
|
+
if (files.length) {
|
|
9
|
+
let route;
|
|
10
|
+
files.map((val, key) => {
|
|
11
|
+
let endpointFile = val.replace(".js", "");
|
|
12
|
+
try {
|
|
13
|
+
route = require(endpointFile);
|
|
14
|
+
if (route instanceof Error) {
|
|
15
|
+
console.log(out.message);
|
|
16
|
+
reject(error);
|
|
17
|
+
}
|
|
18
|
+
route.init();
|
|
19
|
+
if (files.length == key + 1) {
|
|
20
|
+
resolve(true);
|
|
21
|
+
}
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.log(error);
|
|
24
|
+
reject(error);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
} else {
|
|
28
|
+
resolve(true);
|
|
29
|
+
}
|
|
30
|
+
} catch (error) {
|
|
31
|
+
console.log(error);
|
|
32
|
+
reject(error);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
{{requireSomething}}
|
|
2
|
-
exports.init = () => {
|
|
3
|
-
// GET request
|
|
4
|
-
endpoint.get("/{{endpoint}}", Credentials, (req, res) => {
|
|
5
|
-
// @response
|
|
6
|
-
res.json({
|
|
7
|
-
code: 200,
|
|
8
|
-
status: "SUCCESS",
|
|
9
|
-
message: "GET request at /{{endpoint}}",
|
|
10
|
-
});
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
// Create new Endpoints, Learn more: https://github.com/bombkiml/beech-api?tab=readme-ov-file#part-of-generate-file
|
|
14
|
-
|
|
15
|
-
};
|
|
1
|
+
{{requireSomething}}
|
|
2
|
+
exports.init = () => {
|
|
3
|
+
// GET request
|
|
4
|
+
endpoint.get("/{{endpoint}}", Credentials, (req, res) => {
|
|
5
|
+
// @response
|
|
6
|
+
res.json({
|
|
7
|
+
code: 200,
|
|
8
|
+
status: "SUCCESS",
|
|
9
|
+
message: "GET request at /{{endpoint}}",
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
// Create new Endpoints, Learn more: https://github.com/bombkiml/beech-api?tab=readme-ov-file#part-of-generate-file
|
|
14
|
+
|
|
15
|
+
};
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
{{requireSomething}}
|
|
2
|
-
exports.init = () => {
|
|
3
|
-
|
|
4
|
-
// Initiate with Basic request currently support GET, POST, PUT, PATCH and DELETE
|
|
5
|
-
|
|
6
|
-
endpoint.get("/{{endpoint}}", Credentials, (req, res) => {
|
|
7
|
-
// @return
|
|
8
|
-
res.json({
|
|
9
|
-
code: 200,
|
|
10
|
-
status: "SUCCESS",
|
|
11
|
-
message: "GET request at /{{endpoint}}",
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
endpoint.post("/{{endpoint}}", Credentials, (req, res) => {
|
|
16
|
-
let id = req.body.id;
|
|
17
|
-
let name = req.body.name;
|
|
18
|
-
// @return
|
|
19
|
-
res.json({
|
|
20
|
-
code: 200,
|
|
21
|
-
message: "POST request at /{{endpoint}}",
|
|
22
|
-
status: "SUCCESS",
|
|
23
|
-
result: {
|
|
24
|
-
id,
|
|
25
|
-
name,
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
endpoint.put("/{{endpoint}}/:id", Credentials, (req, res) => {
|
|
31
|
-
let id = req.params.id;
|
|
32
|
-
// @return
|
|
33
|
-
res.json({
|
|
34
|
-
code: 200,
|
|
35
|
-
status: "SUCCESS",
|
|
36
|
-
message: "PUT request at /{{endpoint}}/" + id,
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
// Create new Endpoint, Learn more: https://github.com/bombkiml/beech-api?tab=readme-ov-file#part-of-generate-file
|
|
41
|
-
|
|
42
|
-
};
|
|
1
|
+
{{requireSomething}}
|
|
2
|
+
exports.init = () => {
|
|
3
|
+
|
|
4
|
+
// Initiate with Basic request currently support GET, POST, PUT, PATCH and DELETE
|
|
5
|
+
|
|
6
|
+
endpoint.get("/{{endpoint}}", Credentials, (req, res) => {
|
|
7
|
+
// @return
|
|
8
|
+
res.json({
|
|
9
|
+
code: 200,
|
|
10
|
+
status: "SUCCESS",
|
|
11
|
+
message: "GET request at /{{endpoint}}",
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
endpoint.post("/{{endpoint}}", Credentials, (req, res) => {
|
|
16
|
+
let id = req.body.id;
|
|
17
|
+
let name = req.body.name;
|
|
18
|
+
// @return
|
|
19
|
+
res.json({
|
|
20
|
+
code: 200,
|
|
21
|
+
message: "POST request at /{{endpoint}}",
|
|
22
|
+
status: "SUCCESS",
|
|
23
|
+
result: {
|
|
24
|
+
id,
|
|
25
|
+
name,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
endpoint.put("/{{endpoint}}/:id", Credentials, (req, res) => {
|
|
31
|
+
let id = req.params.id;
|
|
32
|
+
// @return
|
|
33
|
+
res.json({
|
|
34
|
+
code: 200,
|
|
35
|
+
status: "SUCCESS",
|
|
36
|
+
message: "PUT request at /{{endpoint}}/" + id,
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
// Create new Endpoint, Learn more: https://github.com/bombkiml/beech-api?tab=readme-ov-file#part-of-generate-file
|
|
41
|
+
|
|
42
|
+
};
|