multi-db-orm 3.0.12 → 3.1.0
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/.vscode/launch.json +29 -29
- package/.vscode/settings.json +10 -10
- package/Dockerfile +17 -17
- package/backup.js +107 -107
- package/databases.js +19 -19
- package/engines/bigquerydb.d.ts +36 -36
- package/engines/bigquerydb.js +236 -236
- package/engines/firestoredb.d.ts +39 -39
- package/engines/firestoredb.js +227 -227
- package/engines/hanadb.d.ts +24 -24
- package/engines/hanadb.js +244 -244
- package/engines/index.d.ts +8 -8
- package/engines/metrics.d.ts +8 -8
- package/engines/metrics.js +77 -77
- package/engines/mongodb.d.ts +18 -18
- package/engines/mongodb.js +148 -148
- package/engines/multidb.d.ts +41 -41
- package/engines/multidb.js +67 -67
- package/engines/mysqldb.d.ts +25 -25
- package/engines/oracledb.d.ts +24 -24
- package/engines/oracledb.js +250 -250
- package/engines/sqlitedb.d.ts +11 -11
- package/engines/sqlitedb.js +166 -166
- package/index.js +23 -23
- package/migrate.sh +11 -11
- package/package.json +1 -1
- package/postinstall.js +8 -8
- package/restore.js +102 -102
- package/sync.d.ts +5 -5
- package/sync.js +48 -48
- package/test/models.js +23 -23
- package/test/test.js +434 -434
package/test/test.js
CHANGED
|
@@ -1,434 +1,434 @@
|
|
|
1
|
-
const { Game } = require("./models");
|
|
2
|
-
const {
|
|
3
|
-
MultiDBSafe,
|
|
4
|
-
FireStoreDB,
|
|
5
|
-
MongoDB,
|
|
6
|
-
SQLiteDB,
|
|
7
|
-
Sync,
|
|
8
|
-
OracleDB,
|
|
9
|
-
} = require("../index");
|
|
10
|
-
const path = require("path");
|
|
11
|
-
const { MySQLDB } = require("../engines/mysqldb");
|
|
12
|
-
const { HanaDB } = require("../engines/hanadb");
|
|
13
|
-
|
|
14
|
-
var testCount = 0;
|
|
15
|
-
function checkTestsCompleted() {
|
|
16
|
-
if (--testCount <= 0) {
|
|
17
|
-
process.exit(0);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
async function testSqlite() {
|
|
22
|
-
var sqlitedb = new SQLiteDB();
|
|
23
|
-
console.log(sqlitedb.metrics.getStatus());
|
|
24
|
-
var gm = new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "paid");
|
|
25
|
-
sqlitedb.loglevel = 1;
|
|
26
|
-
var res = await sqlitedb.create("games", gm);
|
|
27
|
-
res = await sqlitedb.insert("games", gm);
|
|
28
|
-
res = await sqlitedb.insert("games", gm);
|
|
29
|
-
gm.amount = 1;
|
|
30
|
-
res = await sqlitedb.insert("games", gm);
|
|
31
|
-
res = await sqlitedb.get("games", { amount: 1 });
|
|
32
|
-
res = await sqlitedb.getOne("games", { amount: 1 });
|
|
33
|
-
res = await sqlitedb.update("games", { amount: 1 }, { userid: "xxxx" });
|
|
34
|
-
res = await sqlitedb.getOne("games", { userid: "xxxx" });
|
|
35
|
-
|
|
36
|
-
res = await sqlitedb.insert(
|
|
37
|
-
"games",
|
|
38
|
-
new Game("IndVSPak1", Date.now(), "Dhoni", 100, "free")
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
res = await sqlitedb.insert(
|
|
42
|
-
"games",
|
|
43
|
-
new Game("IndVSPak2", Date.now(), "Dhoni", 200, "free")
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
res = await sqlitedb.insert(
|
|
47
|
-
"games",
|
|
48
|
-
new Game("IndVSPak3", Date.now(), "Dhoni", 300, "paid")
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
res = await sqlitedb.insert(
|
|
52
|
-
"games",
|
|
53
|
-
new Game("IndVSPak4", Date.now(), "Dhoni", 400, "paid")
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
res = await sqlitedb.get("games", undefined, {
|
|
57
|
-
sort: [
|
|
58
|
-
{ field: "timeStamp", order: "asc" },
|
|
59
|
-
{ field: "amount", order: "asc" },
|
|
60
|
-
],
|
|
61
|
-
limit: 5,
|
|
62
|
-
offset: 1,
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
res = await sqlitedb.get(
|
|
66
|
-
"games",
|
|
67
|
-
{ type: "paid" },
|
|
68
|
-
{
|
|
69
|
-
sort: [
|
|
70
|
-
{ field: "amount", order: "desc" },
|
|
71
|
-
{ field: "timeStamp", order: "desc" },
|
|
72
|
-
],
|
|
73
|
-
}
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
res = await sqlitedb.get(
|
|
77
|
-
"games",
|
|
78
|
-
{ amount: 400 },
|
|
79
|
-
{
|
|
80
|
-
apply: {
|
|
81
|
-
field: "timeStamp",
|
|
82
|
-
sort: "desc",
|
|
83
|
-
ineq: {
|
|
84
|
-
op: ">=",
|
|
85
|
-
value: 1,
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
sort: [
|
|
89
|
-
{ field: "amount", order: "asc" },
|
|
90
|
-
{ field: "timeStamp", order: "desc" },
|
|
91
|
-
],
|
|
92
|
-
limit: 2,
|
|
93
|
-
offset: 1,
|
|
94
|
-
}
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
console.log("SQLite DB Tests Successfull");
|
|
98
|
-
console.log(sqlitedb.metrics.getStatus());
|
|
99
|
-
checkTestsCompleted();
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
async function testFireStore() {
|
|
103
|
-
try {
|
|
104
|
-
require("../creds.json");
|
|
105
|
-
} catch (e) {
|
|
106
|
-
console.log("testFireStore", "creds.json not found");
|
|
107
|
-
checkTestsCompleted();
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
var firebasedb = new FireStoreDB(require("../creds.json"));
|
|
111
|
-
console.log(firebasedb.metrics.getStatus());
|
|
112
|
-
|
|
113
|
-
var gm = new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "free");
|
|
114
|
-
firebasedb.loglevel = 1;
|
|
115
|
-
var res = await firebasedb.create("games", gm);
|
|
116
|
-
res = await firebasedb.insert("games", gm, Date.now());
|
|
117
|
-
res = await firebasedb.insert("games", gm, Date.now());
|
|
118
|
-
gm.amount = 1;
|
|
119
|
-
res = await firebasedb.insert("games", gm);
|
|
120
|
-
res = await firebasedb.get("games", { amount: 67.33 });
|
|
121
|
-
res = await firebasedb.getOne("games", { amount: 1 });
|
|
122
|
-
res = await firebasedb.update(
|
|
123
|
-
"games",
|
|
124
|
-
{ userid: "Dhoni" },
|
|
125
|
-
{ userid: "ABC123" }
|
|
126
|
-
);
|
|
127
|
-
res = await firebasedb.update("games", { id: "IndVSPak" }, { amount: 1000 });
|
|
128
|
-
await firebasedb.delete("games", { type: "free" });
|
|
129
|
-
|
|
130
|
-
res = await firebasedb.insert(
|
|
131
|
-
"games",
|
|
132
|
-
new Game("IndVSPak1", Date.now(), "Dhoni", 100, "free")
|
|
133
|
-
);
|
|
134
|
-
|
|
135
|
-
res = await firebasedb.insert(
|
|
136
|
-
"games",
|
|
137
|
-
new Game("IndVSPak2", Date.now(), "Dhoni", 200, "free")
|
|
138
|
-
);
|
|
139
|
-
|
|
140
|
-
res = await firebasedb.insert(
|
|
141
|
-
"games",
|
|
142
|
-
new Game("IndVSPak3", Date.now(), "Dhoni", 300, "paid")
|
|
143
|
-
);
|
|
144
|
-
|
|
145
|
-
res = await firebasedb.insert(
|
|
146
|
-
"games",
|
|
147
|
-
new Game("IndVSPak4", Date.now(), "Dhoni", 400, "paid")
|
|
148
|
-
);
|
|
149
|
-
|
|
150
|
-
res = await firebasedb.get("games", undefined, {
|
|
151
|
-
sort: [{ field: "amount", order: "desc" }],
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
res = await firebasedb.get("games", undefined, {
|
|
155
|
-
sort: [{ field: "amount", order: "desc" }],
|
|
156
|
-
limit: 2,
|
|
157
|
-
offset: 1,
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
// res = await firebasedb.get('games', {type:'paid'}, { sort: [{ field: 'amount', order: 'asc' }, { field: 'timeStamp', order: 'desc' }] })
|
|
161
|
-
|
|
162
|
-
res = await firebasedb.get(
|
|
163
|
-
"games",
|
|
164
|
-
{ amount: 100 },
|
|
165
|
-
{
|
|
166
|
-
apply: {
|
|
167
|
-
field: "timeStamp",
|
|
168
|
-
sort: "desc",
|
|
169
|
-
ineq: {
|
|
170
|
-
op: ">=",
|
|
171
|
-
value: 1,
|
|
172
|
-
},
|
|
173
|
-
},
|
|
174
|
-
sort: [
|
|
175
|
-
{ field: "amount", order: "asc" },
|
|
176
|
-
{ field: "timeStamp", order: "desc" },
|
|
177
|
-
],
|
|
178
|
-
limit: 2,
|
|
179
|
-
offset: 1,
|
|
180
|
-
}
|
|
181
|
-
);
|
|
182
|
-
|
|
183
|
-
console.log("Firestore DB Tests Successfull");
|
|
184
|
-
console.log(firebasedb.metrics.getStatus());
|
|
185
|
-
|
|
186
|
-
checkTestsCompleted();
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
async function testMongo() {
|
|
190
|
-
try {
|
|
191
|
-
require("../creds.json");
|
|
192
|
-
} catch (e) {
|
|
193
|
-
console.log("testMongo", "creds.json not found");
|
|
194
|
-
checkTestsCompleted();
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
var crd = require("../creds.json");
|
|
198
|
-
var mongodb = new MongoDB(crd.mongourl, crd.mongodbname);
|
|
199
|
-
console.log(mongodb.metrics.getStatus());
|
|
200
|
-
|
|
201
|
-
if (mongodb.db == undefined) {
|
|
202
|
-
await mongodb._connect();
|
|
203
|
-
}
|
|
204
|
-
try {
|
|
205
|
-
var gm = new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "free");
|
|
206
|
-
mongodb.loglevel = 1;
|
|
207
|
-
var res = await mongodb.create("games", gm);
|
|
208
|
-
res = await mongodb.insert("games", gm);
|
|
209
|
-
res = await mongodb.insert(
|
|
210
|
-
"games",
|
|
211
|
-
new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "free")
|
|
212
|
-
);
|
|
213
|
-
res = await mongodb.get("games", { amount: 67.33 });
|
|
214
|
-
res = await mongodb.getOne("games", { amount: 1 });
|
|
215
|
-
res = await mongodb.update(
|
|
216
|
-
"games",
|
|
217
|
-
{ userid: "Dhoni" },
|
|
218
|
-
{ userid: "ABC123" }
|
|
219
|
-
);
|
|
220
|
-
res = await mongodb.update("games", { id: "IndVSPak" }, { amount: 1000 });
|
|
221
|
-
|
|
222
|
-
res = await mongodb.insert(
|
|
223
|
-
"games",
|
|
224
|
-
new Game("IndVSPak1", Date.now(), "Dhoni", 100, "free")
|
|
225
|
-
);
|
|
226
|
-
|
|
227
|
-
res = await mongodb.insert(
|
|
228
|
-
"games",
|
|
229
|
-
new Game("IndVSPak2", Date.now(), "Dhoni", 200, "free")
|
|
230
|
-
);
|
|
231
|
-
|
|
232
|
-
res = await mongodb.insert(
|
|
233
|
-
"games",
|
|
234
|
-
new Game("IndVSPak3", Date.now(), "Dhoni", 300, "paid")
|
|
235
|
-
);
|
|
236
|
-
|
|
237
|
-
res = await mongodb.insert(
|
|
238
|
-
"games",
|
|
239
|
-
new Game("IndVSPak4", Date.now(), "Dhoni", 400, "paid")
|
|
240
|
-
);
|
|
241
|
-
|
|
242
|
-
res = await mongodb.get("games", undefined, {
|
|
243
|
-
sort: [{ field: "amount", order: "desc" }],
|
|
244
|
-
});
|
|
245
|
-
|
|
246
|
-
res = await mongodb.get("games", undefined, {
|
|
247
|
-
sort: [
|
|
248
|
-
{ field: "timeStamp", order: "asc" },
|
|
249
|
-
{ field: "amount", order: "asc" },
|
|
250
|
-
],
|
|
251
|
-
limit: 5,
|
|
252
|
-
offset: 1,
|
|
253
|
-
});
|
|
254
|
-
|
|
255
|
-
res = await mongodb.get(
|
|
256
|
-
"games",
|
|
257
|
-
{ type: "paid" },
|
|
258
|
-
{
|
|
259
|
-
sort: [
|
|
260
|
-
{ field: "amount", order: "asc" },
|
|
261
|
-
{ field: "timeStamp", order: "desc" },
|
|
262
|
-
],
|
|
263
|
-
}
|
|
264
|
-
);
|
|
265
|
-
|
|
266
|
-
res = await mongodb.get(
|
|
267
|
-
"games",
|
|
268
|
-
{ amount: 400 },
|
|
269
|
-
{
|
|
270
|
-
apply: {
|
|
271
|
-
field: "timeStamp",
|
|
272
|
-
sort: "desc",
|
|
273
|
-
ineq: {
|
|
274
|
-
op: ">=",
|
|
275
|
-
value: 1,
|
|
276
|
-
},
|
|
277
|
-
},
|
|
278
|
-
sort: [
|
|
279
|
-
{ field: "amount", order: "asc" },
|
|
280
|
-
{ field: "timeStamp", order: "desc" },
|
|
281
|
-
],
|
|
282
|
-
limit: 2,
|
|
283
|
-
offset: 1,
|
|
284
|
-
}
|
|
285
|
-
);
|
|
286
|
-
await mongodb.delete("games", { type: "free" });
|
|
287
|
-
console.log("Mongo DB Tests Successfull");
|
|
288
|
-
console.log(mongodb.metrics.getStatus());
|
|
289
|
-
} finally {
|
|
290
|
-
mongodb._close();
|
|
291
|
-
checkTestsCompleted();
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
async function testOracleDb() {
|
|
296
|
-
let creds = require("../creds/oracle/creds.json");
|
|
297
|
-
creds.wallet_dir = path.join(__dirname, "../creds/oracle");
|
|
298
|
-
var oracledb = new OracleDB(creds);
|
|
299
|
-
console.log(oracledb.metrics.getStatus());
|
|
300
|
-
var gm = new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "paid");
|
|
301
|
-
gm.completed = true;
|
|
302
|
-
gm.runs = ["a", "b"];
|
|
303
|
-
gm.extras = {
|
|
304
|
-
location: "India",
|
|
305
|
-
raining: false,
|
|
306
|
-
match: 1,
|
|
307
|
-
};
|
|
308
|
-
oracledb.loglevel = 1;
|
|
309
|
-
await oracledb.connect();
|
|
310
|
-
test(oracledb);
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
async function testMysqlDb() {
|
|
314
|
-
let creds = require("../creds/mysql.json");
|
|
315
|
-
var mysqldb = new MySQLDB(creds);
|
|
316
|
-
console.log(mysqldb.metrics.getStatus());
|
|
317
|
-
mysqldb.loglevel = 1;
|
|
318
|
-
await mysqldb.connect();
|
|
319
|
-
test(mysqldb);
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
async function testHanaDb() {
|
|
323
|
-
let creds = require("../creds/hana.json");
|
|
324
|
-
var hana = new HanaDB(creds);
|
|
325
|
-
console.log(hana.metrics.getStatus());
|
|
326
|
-
hana.loglevel = 1;
|
|
327
|
-
await hana.connect();
|
|
328
|
-
test(hana);
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
async function test(db) {
|
|
332
|
-
testCount++;
|
|
333
|
-
var gm = new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "paid");
|
|
334
|
-
gm.completed = true;
|
|
335
|
-
gm.runs = ["a", "b"];
|
|
336
|
-
gm.extras = {
|
|
337
|
-
location: "India",
|
|
338
|
-
raining: false,
|
|
339
|
-
match: 1,
|
|
340
|
-
};
|
|
341
|
-
var res = await db.create("games", gm).catch((e) => {
|
|
342
|
-
if (!e.message.includes("duplicate")) {
|
|
343
|
-
throw e;
|
|
344
|
-
}
|
|
345
|
-
});
|
|
346
|
-
gm.id = Date.now();
|
|
347
|
-
res = await db.insert("games", gm);
|
|
348
|
-
gm.id = Date.now();
|
|
349
|
-
|
|
350
|
-
res = await db.insert("games", gm);
|
|
351
|
-
gm.amount = 1;
|
|
352
|
-
gm.id = Date.now();
|
|
353
|
-
|
|
354
|
-
res = await db.insert("games", gm);
|
|
355
|
-
res = await db.get("games", { amount: 1 });
|
|
356
|
-
res = await db.getOne("games", { amount: 1 });
|
|
357
|
-
res = await db.update("games", { amount: 1 }, { userid: "xxxx" });
|
|
358
|
-
res = await db.getOne("games", { userid: "xxxx" });
|
|
359
|
-
|
|
360
|
-
res = await db.insert(
|
|
361
|
-
"games",
|
|
362
|
-
new Game("IndVSPak1", Date.now(), "Dhoni", 100, "free")
|
|
363
|
-
);
|
|
364
|
-
|
|
365
|
-
res = await db.insert(
|
|
366
|
-
"games",
|
|
367
|
-
new Game("IndVSPak2", Date.now(), "Dhoni", 200, "free")
|
|
368
|
-
);
|
|
369
|
-
|
|
370
|
-
res = await db.insert(
|
|
371
|
-
"games",
|
|
372
|
-
new Game("IndVSPak3", Date.now(), "Dhoni", 300, "paid")
|
|
373
|
-
);
|
|
374
|
-
|
|
375
|
-
res = await db.insert(
|
|
376
|
-
"games",
|
|
377
|
-
new Game("IndVSPak4", Date.now(), "Dhoni", 400, "paid")
|
|
378
|
-
);
|
|
379
|
-
|
|
380
|
-
res = await db.get("games", undefined, {
|
|
381
|
-
sort: [
|
|
382
|
-
{ field: "timeStamp", order: "asc" },
|
|
383
|
-
{ field: "amount", order: "asc" },
|
|
384
|
-
],
|
|
385
|
-
limit: 5,
|
|
386
|
-
offset: 1,
|
|
387
|
-
});
|
|
388
|
-
|
|
389
|
-
res = await db.get(
|
|
390
|
-
"games",
|
|
391
|
-
{ type: "paid" },
|
|
392
|
-
{
|
|
393
|
-
sort: [
|
|
394
|
-
{ field: "amount", order: "desc" },
|
|
395
|
-
{ field: "timeStamp", order: "desc" },
|
|
396
|
-
],
|
|
397
|
-
}
|
|
398
|
-
);
|
|
399
|
-
|
|
400
|
-
res = await db.get(
|
|
401
|
-
"games",
|
|
402
|
-
{ amount: 400 },
|
|
403
|
-
{
|
|
404
|
-
apply: {
|
|
405
|
-
field: "timeStamp",
|
|
406
|
-
sort: "desc",
|
|
407
|
-
ineq: {
|
|
408
|
-
op: ">=",
|
|
409
|
-
value: 1,
|
|
410
|
-
},
|
|
411
|
-
},
|
|
412
|
-
sort: [
|
|
413
|
-
{ field: "amount", order: "asc" },
|
|
414
|
-
{ field: "timeStamp", order: "desc" },
|
|
415
|
-
],
|
|
416
|
-
limit: 2,
|
|
417
|
-
offset: 1,
|
|
418
|
-
}
|
|
419
|
-
);
|
|
420
|
-
|
|
421
|
-
res = await db.delete("games", { id: "IndVSPak1" });
|
|
422
|
-
res = await db.getOne("games", { id: "IndVSPak1" });
|
|
423
|
-
|
|
424
|
-
console.log("SQLite DB Tests Successfull");
|
|
425
|
-
console.log(db.metrics.getStatus());
|
|
426
|
-
checkTestsCompleted();
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
// testSqlite();
|
|
430
|
-
// testFireStore();
|
|
431
|
-
// testMongo();
|
|
432
|
-
// testOracleDb()
|
|
433
|
-
// testMysqlDb();
|
|
434
|
-
testHanaDb();
|
|
1
|
+
const { Game } = require("./models");
|
|
2
|
+
const {
|
|
3
|
+
MultiDBSafe,
|
|
4
|
+
FireStoreDB,
|
|
5
|
+
MongoDB,
|
|
6
|
+
SQLiteDB,
|
|
7
|
+
Sync,
|
|
8
|
+
OracleDB,
|
|
9
|
+
} = require("../index");
|
|
10
|
+
const path = require("path");
|
|
11
|
+
const { MySQLDB } = require("../engines/mysqldb");
|
|
12
|
+
const { HanaDB } = require("../engines/hanadb");
|
|
13
|
+
|
|
14
|
+
var testCount = 0;
|
|
15
|
+
function checkTestsCompleted() {
|
|
16
|
+
if (--testCount <= 0) {
|
|
17
|
+
process.exit(0);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async function testSqlite() {
|
|
22
|
+
var sqlitedb = new SQLiteDB();
|
|
23
|
+
console.log(sqlitedb.metrics.getStatus());
|
|
24
|
+
var gm = new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "paid");
|
|
25
|
+
sqlitedb.loglevel = 1;
|
|
26
|
+
var res = await sqlitedb.create("games", gm);
|
|
27
|
+
res = await sqlitedb.insert("games", gm);
|
|
28
|
+
res = await sqlitedb.insert("games", gm);
|
|
29
|
+
gm.amount = 1;
|
|
30
|
+
res = await sqlitedb.insert("games", gm);
|
|
31
|
+
res = await sqlitedb.get("games", { amount: 1 });
|
|
32
|
+
res = await sqlitedb.getOne("games", { amount: 1 });
|
|
33
|
+
res = await sqlitedb.update("games", { amount: 1 }, { userid: "xxxx" });
|
|
34
|
+
res = await sqlitedb.getOne("games", { userid: "xxxx" });
|
|
35
|
+
|
|
36
|
+
res = await sqlitedb.insert(
|
|
37
|
+
"games",
|
|
38
|
+
new Game("IndVSPak1", Date.now(), "Dhoni", 100, "free")
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
res = await sqlitedb.insert(
|
|
42
|
+
"games",
|
|
43
|
+
new Game("IndVSPak2", Date.now(), "Dhoni", 200, "free")
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
res = await sqlitedb.insert(
|
|
47
|
+
"games",
|
|
48
|
+
new Game("IndVSPak3", Date.now(), "Dhoni", 300, "paid")
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
res = await sqlitedb.insert(
|
|
52
|
+
"games",
|
|
53
|
+
new Game("IndVSPak4", Date.now(), "Dhoni", 400, "paid")
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
res = await sqlitedb.get("games", undefined, {
|
|
57
|
+
sort: [
|
|
58
|
+
{ field: "timeStamp", order: "asc" },
|
|
59
|
+
{ field: "amount", order: "asc" },
|
|
60
|
+
],
|
|
61
|
+
limit: 5,
|
|
62
|
+
offset: 1,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
res = await sqlitedb.get(
|
|
66
|
+
"games",
|
|
67
|
+
{ type: "paid" },
|
|
68
|
+
{
|
|
69
|
+
sort: [
|
|
70
|
+
{ field: "amount", order: "desc" },
|
|
71
|
+
{ field: "timeStamp", order: "desc" },
|
|
72
|
+
],
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
res = await sqlitedb.get(
|
|
77
|
+
"games",
|
|
78
|
+
{ amount: 400 },
|
|
79
|
+
{
|
|
80
|
+
apply: {
|
|
81
|
+
field: "timeStamp",
|
|
82
|
+
sort: "desc",
|
|
83
|
+
ineq: {
|
|
84
|
+
op: ">=",
|
|
85
|
+
value: 1,
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
sort: [
|
|
89
|
+
{ field: "amount", order: "asc" },
|
|
90
|
+
{ field: "timeStamp", order: "desc" },
|
|
91
|
+
],
|
|
92
|
+
limit: 2,
|
|
93
|
+
offset: 1,
|
|
94
|
+
}
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
console.log("SQLite DB Tests Successfull");
|
|
98
|
+
console.log(sqlitedb.metrics.getStatus());
|
|
99
|
+
checkTestsCompleted();
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
async function testFireStore() {
|
|
103
|
+
try {
|
|
104
|
+
require("../creds.json");
|
|
105
|
+
} catch (e) {
|
|
106
|
+
console.log("testFireStore", "creds.json not found");
|
|
107
|
+
checkTestsCompleted();
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
var firebasedb = new FireStoreDB(require("../creds.json"));
|
|
111
|
+
console.log(firebasedb.metrics.getStatus());
|
|
112
|
+
|
|
113
|
+
var gm = new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "free");
|
|
114
|
+
firebasedb.loglevel = 1;
|
|
115
|
+
var res = await firebasedb.create("games", gm);
|
|
116
|
+
res = await firebasedb.insert("games", gm, Date.now());
|
|
117
|
+
res = await firebasedb.insert("games", gm, Date.now());
|
|
118
|
+
gm.amount = 1;
|
|
119
|
+
res = await firebasedb.insert("games", gm);
|
|
120
|
+
res = await firebasedb.get("games", { amount: 67.33 });
|
|
121
|
+
res = await firebasedb.getOne("games", { amount: 1 });
|
|
122
|
+
res = await firebasedb.update(
|
|
123
|
+
"games",
|
|
124
|
+
{ userid: "Dhoni" },
|
|
125
|
+
{ userid: "ABC123" }
|
|
126
|
+
);
|
|
127
|
+
res = await firebasedb.update("games", { id: "IndVSPak" }, { amount: 1000 });
|
|
128
|
+
await firebasedb.delete("games", { type: "free" });
|
|
129
|
+
|
|
130
|
+
res = await firebasedb.insert(
|
|
131
|
+
"games",
|
|
132
|
+
new Game("IndVSPak1", Date.now(), "Dhoni", 100, "free")
|
|
133
|
+
);
|
|
134
|
+
|
|
135
|
+
res = await firebasedb.insert(
|
|
136
|
+
"games",
|
|
137
|
+
new Game("IndVSPak2", Date.now(), "Dhoni", 200, "free")
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
res = await firebasedb.insert(
|
|
141
|
+
"games",
|
|
142
|
+
new Game("IndVSPak3", Date.now(), "Dhoni", 300, "paid")
|
|
143
|
+
);
|
|
144
|
+
|
|
145
|
+
res = await firebasedb.insert(
|
|
146
|
+
"games",
|
|
147
|
+
new Game("IndVSPak4", Date.now(), "Dhoni", 400, "paid")
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
res = await firebasedb.get("games", undefined, {
|
|
151
|
+
sort: [{ field: "amount", order: "desc" }],
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
res = await firebasedb.get("games", undefined, {
|
|
155
|
+
sort: [{ field: "amount", order: "desc" }],
|
|
156
|
+
limit: 2,
|
|
157
|
+
offset: 1,
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
// res = await firebasedb.get('games', {type:'paid'}, { sort: [{ field: 'amount', order: 'asc' }, { field: 'timeStamp', order: 'desc' }] })
|
|
161
|
+
|
|
162
|
+
res = await firebasedb.get(
|
|
163
|
+
"games",
|
|
164
|
+
{ amount: 100 },
|
|
165
|
+
{
|
|
166
|
+
apply: {
|
|
167
|
+
field: "timeStamp",
|
|
168
|
+
sort: "desc",
|
|
169
|
+
ineq: {
|
|
170
|
+
op: ">=",
|
|
171
|
+
value: 1,
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
sort: [
|
|
175
|
+
{ field: "amount", order: "asc" },
|
|
176
|
+
{ field: "timeStamp", order: "desc" },
|
|
177
|
+
],
|
|
178
|
+
limit: 2,
|
|
179
|
+
offset: 1,
|
|
180
|
+
}
|
|
181
|
+
);
|
|
182
|
+
|
|
183
|
+
console.log("Firestore DB Tests Successfull");
|
|
184
|
+
console.log(firebasedb.metrics.getStatus());
|
|
185
|
+
|
|
186
|
+
checkTestsCompleted();
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
async function testMongo() {
|
|
190
|
+
try {
|
|
191
|
+
require("../creds.json");
|
|
192
|
+
} catch (e) {
|
|
193
|
+
console.log("testMongo", "creds.json not found");
|
|
194
|
+
checkTestsCompleted();
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
var crd = require("../creds.json");
|
|
198
|
+
var mongodb = new MongoDB(crd.mongourl, crd.mongodbname);
|
|
199
|
+
console.log(mongodb.metrics.getStatus());
|
|
200
|
+
|
|
201
|
+
if (mongodb.db == undefined) {
|
|
202
|
+
await mongodb._connect();
|
|
203
|
+
}
|
|
204
|
+
try {
|
|
205
|
+
var gm = new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "free");
|
|
206
|
+
mongodb.loglevel = 1;
|
|
207
|
+
var res = await mongodb.create("games", gm);
|
|
208
|
+
res = await mongodb.insert("games", gm);
|
|
209
|
+
res = await mongodb.insert(
|
|
210
|
+
"games",
|
|
211
|
+
new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "free")
|
|
212
|
+
);
|
|
213
|
+
res = await mongodb.get("games", { amount: 67.33 });
|
|
214
|
+
res = await mongodb.getOne("games", { amount: 1 });
|
|
215
|
+
res = await mongodb.update(
|
|
216
|
+
"games",
|
|
217
|
+
{ userid: "Dhoni" },
|
|
218
|
+
{ userid: "ABC123" }
|
|
219
|
+
);
|
|
220
|
+
res = await mongodb.update("games", { id: "IndVSPak" }, { amount: 1000 });
|
|
221
|
+
|
|
222
|
+
res = await mongodb.insert(
|
|
223
|
+
"games",
|
|
224
|
+
new Game("IndVSPak1", Date.now(), "Dhoni", 100, "free")
|
|
225
|
+
);
|
|
226
|
+
|
|
227
|
+
res = await mongodb.insert(
|
|
228
|
+
"games",
|
|
229
|
+
new Game("IndVSPak2", Date.now(), "Dhoni", 200, "free")
|
|
230
|
+
);
|
|
231
|
+
|
|
232
|
+
res = await mongodb.insert(
|
|
233
|
+
"games",
|
|
234
|
+
new Game("IndVSPak3", Date.now(), "Dhoni", 300, "paid")
|
|
235
|
+
);
|
|
236
|
+
|
|
237
|
+
res = await mongodb.insert(
|
|
238
|
+
"games",
|
|
239
|
+
new Game("IndVSPak4", Date.now(), "Dhoni", 400, "paid")
|
|
240
|
+
);
|
|
241
|
+
|
|
242
|
+
res = await mongodb.get("games", undefined, {
|
|
243
|
+
sort: [{ field: "amount", order: "desc" }],
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
res = await mongodb.get("games", undefined, {
|
|
247
|
+
sort: [
|
|
248
|
+
{ field: "timeStamp", order: "asc" },
|
|
249
|
+
{ field: "amount", order: "asc" },
|
|
250
|
+
],
|
|
251
|
+
limit: 5,
|
|
252
|
+
offset: 1,
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
res = await mongodb.get(
|
|
256
|
+
"games",
|
|
257
|
+
{ type: "paid" },
|
|
258
|
+
{
|
|
259
|
+
sort: [
|
|
260
|
+
{ field: "amount", order: "asc" },
|
|
261
|
+
{ field: "timeStamp", order: "desc" },
|
|
262
|
+
],
|
|
263
|
+
}
|
|
264
|
+
);
|
|
265
|
+
|
|
266
|
+
res = await mongodb.get(
|
|
267
|
+
"games",
|
|
268
|
+
{ amount: 400 },
|
|
269
|
+
{
|
|
270
|
+
apply: {
|
|
271
|
+
field: "timeStamp",
|
|
272
|
+
sort: "desc",
|
|
273
|
+
ineq: {
|
|
274
|
+
op: ">=",
|
|
275
|
+
value: 1,
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
sort: [
|
|
279
|
+
{ field: "amount", order: "asc" },
|
|
280
|
+
{ field: "timeStamp", order: "desc" },
|
|
281
|
+
],
|
|
282
|
+
limit: 2,
|
|
283
|
+
offset: 1,
|
|
284
|
+
}
|
|
285
|
+
);
|
|
286
|
+
await mongodb.delete("games", { type: "free" });
|
|
287
|
+
console.log("Mongo DB Tests Successfull");
|
|
288
|
+
console.log(mongodb.metrics.getStatus());
|
|
289
|
+
} finally {
|
|
290
|
+
mongodb._close();
|
|
291
|
+
checkTestsCompleted();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
async function testOracleDb() {
|
|
296
|
+
let creds = require("../creds/oracle/creds.json");
|
|
297
|
+
creds.wallet_dir = path.join(__dirname, "../creds/oracle");
|
|
298
|
+
var oracledb = new OracleDB(creds);
|
|
299
|
+
console.log(oracledb.metrics.getStatus());
|
|
300
|
+
var gm = new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "paid");
|
|
301
|
+
gm.completed = true;
|
|
302
|
+
gm.runs = ["a", "b"];
|
|
303
|
+
gm.extras = {
|
|
304
|
+
location: "India",
|
|
305
|
+
raining: false,
|
|
306
|
+
match: 1,
|
|
307
|
+
};
|
|
308
|
+
oracledb.loglevel = 1;
|
|
309
|
+
await oracledb.connect();
|
|
310
|
+
test(oracledb);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
async function testMysqlDb() {
|
|
314
|
+
let creds = require("../creds/mysql.json");
|
|
315
|
+
var mysqldb = new MySQLDB(creds);
|
|
316
|
+
console.log(mysqldb.metrics.getStatus());
|
|
317
|
+
mysqldb.loglevel = 1;
|
|
318
|
+
await mysqldb.connect();
|
|
319
|
+
test(mysqldb);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
async function testHanaDb() {
|
|
323
|
+
let creds = require("../creds/hana.json");
|
|
324
|
+
var hana = new HanaDB(creds);
|
|
325
|
+
console.log(hana.metrics.getStatus());
|
|
326
|
+
hana.loglevel = 1;
|
|
327
|
+
await hana.connect();
|
|
328
|
+
test(hana);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
async function test(db) {
|
|
332
|
+
testCount++;
|
|
333
|
+
var gm = new Game("IndVSPak", Date.now(), "Dhoni", 67.33, "paid");
|
|
334
|
+
gm.completed = true;
|
|
335
|
+
gm.runs = ["a", "b"];
|
|
336
|
+
gm.extras = {
|
|
337
|
+
location: "India",
|
|
338
|
+
raining: false,
|
|
339
|
+
match: 1,
|
|
340
|
+
};
|
|
341
|
+
var res = await db.create("games", gm).catch((e) => {
|
|
342
|
+
if (!e.message.includes("duplicate")) {
|
|
343
|
+
throw e;
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
gm.id = Date.now();
|
|
347
|
+
res = await db.insert("games", gm);
|
|
348
|
+
gm.id = Date.now();
|
|
349
|
+
|
|
350
|
+
res = await db.insert("games", gm);
|
|
351
|
+
gm.amount = 1;
|
|
352
|
+
gm.id = Date.now();
|
|
353
|
+
|
|
354
|
+
res = await db.insert("games", gm);
|
|
355
|
+
res = await db.get("games", { amount: 1 });
|
|
356
|
+
res = await db.getOne("games", { amount: 1 });
|
|
357
|
+
res = await db.update("games", { amount: 1 }, { userid: "xxxx" });
|
|
358
|
+
res = await db.getOne("games", { userid: "xxxx" });
|
|
359
|
+
|
|
360
|
+
res = await db.insert(
|
|
361
|
+
"games",
|
|
362
|
+
new Game("IndVSPak1", Date.now(), "Dhoni", 100, "free")
|
|
363
|
+
);
|
|
364
|
+
|
|
365
|
+
res = await db.insert(
|
|
366
|
+
"games",
|
|
367
|
+
new Game("IndVSPak2", Date.now(), "Dhoni", 200, "free")
|
|
368
|
+
);
|
|
369
|
+
|
|
370
|
+
res = await db.insert(
|
|
371
|
+
"games",
|
|
372
|
+
new Game("IndVSPak3", Date.now(), "Dhoni", 300, "paid")
|
|
373
|
+
);
|
|
374
|
+
|
|
375
|
+
res = await db.insert(
|
|
376
|
+
"games",
|
|
377
|
+
new Game("IndVSPak4", Date.now(), "Dhoni", 400, "paid")
|
|
378
|
+
);
|
|
379
|
+
|
|
380
|
+
res = await db.get("games", undefined, {
|
|
381
|
+
sort: [
|
|
382
|
+
{ field: "timeStamp", order: "asc" },
|
|
383
|
+
{ field: "amount", order: "asc" },
|
|
384
|
+
],
|
|
385
|
+
limit: 5,
|
|
386
|
+
offset: 1,
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
res = await db.get(
|
|
390
|
+
"games",
|
|
391
|
+
{ type: "paid" },
|
|
392
|
+
{
|
|
393
|
+
sort: [
|
|
394
|
+
{ field: "amount", order: "desc" },
|
|
395
|
+
{ field: "timeStamp", order: "desc" },
|
|
396
|
+
],
|
|
397
|
+
}
|
|
398
|
+
);
|
|
399
|
+
|
|
400
|
+
res = await db.get(
|
|
401
|
+
"games",
|
|
402
|
+
{ amount: 400 },
|
|
403
|
+
{
|
|
404
|
+
apply: {
|
|
405
|
+
field: "timeStamp",
|
|
406
|
+
sort: "desc",
|
|
407
|
+
ineq: {
|
|
408
|
+
op: ">=",
|
|
409
|
+
value: 1,
|
|
410
|
+
},
|
|
411
|
+
},
|
|
412
|
+
sort: [
|
|
413
|
+
{ field: "amount", order: "asc" },
|
|
414
|
+
{ field: "timeStamp", order: "desc" },
|
|
415
|
+
],
|
|
416
|
+
limit: 2,
|
|
417
|
+
offset: 1,
|
|
418
|
+
}
|
|
419
|
+
);
|
|
420
|
+
|
|
421
|
+
res = await db.delete("games", { id: "IndVSPak1" });
|
|
422
|
+
res = await db.getOne("games", { id: "IndVSPak1" });
|
|
423
|
+
|
|
424
|
+
console.log("SQLite DB Tests Successfull");
|
|
425
|
+
console.log(db.metrics.getStatus());
|
|
426
|
+
checkTestsCompleted();
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
// testSqlite();
|
|
430
|
+
// testFireStore();
|
|
431
|
+
// testMongo();
|
|
432
|
+
// testOracleDb()
|
|
433
|
+
// testMysqlDb();
|
|
434
|
+
testHanaDb();
|