-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinsert.js
More file actions
108 lines (99 loc) · 3.04 KB
/
insert.js
File metadata and controls
108 lines (99 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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
var sqlite3 = require('sqlite3').verbose();
var path = require("path");
var chalk = require("chalk");
var fs = require("fs");
var queue = require("queue");
var stompit = require("stompit");
var dbpath = path.join(__dirname, "db", "devtest.sqlite3");
var connectOptions = {
"host": "localhost",
"port": "61613",
"connectionHeaders": {
"host": "/",
"login": "admin",
"passcode": "admin"
}
}
var db = new sqlite3.Database(dbpath, (err) => {
if (err) console.log(chalk.red(err));
else console.log(chalk.green("DB devtest created successfully at dbpath"));
});
var csvFile;
if (process.argv[2] !== null && typeof (process.argv[2]) === "string") {
csvFile = process.argv[2];
} else {
csvFile = path.join(__dirname, "dummy_delimited.csv");
}
var csvData = fs.readFileSync(csvFile, "utf8");
var csvToJSON = () => {
//convert CRLF line endings to LF
var lines = csvData.replace(/\r\n/g, "\n")
var rows = lines.split("\n");
clean = rows.filter((row) => row.length !== 0)
var result = [],
headers = clean[0].split("|");
for (let i = 1; i < clean.length; i++) {
let obj = {},
currentLine = clean[i].split("|");
for (let j = 0; j < headers.length; j++) {
obj[headers[j]] = currentLine[j];
}
result.push(obj);
}
return result
}
var dbEntries = csvToJSON().filter(row => row.five === "C" || row.five === "G");
var AMQEntries = csvToJSON().filter(row => !(row.five === "C" || row.five === "G"));
db.serialize(function () {
db.run('DROP TABLE IF EXISTS csvEntries')
db.run(`CREATE TABLE csvEntries(
one text,
two text,
three text,
four text,
five text,
six test,
seven text,
eight text,
nine text,
ten text,
eleven text,
twelve text
)`, (err) => {
if (err) console.log(err)
else console.log(chalk.green("sucessfuly created table"))
});
var stmt = db.prepare("INSERT INTO csvEntries VALUES (?,?,?,?,?,?,?,?,?,?,?,?)")
dbEntries.forEach(function (elem) {
stmt.run(elem.one, elem.two, elem.three, elem.four, elem.five, elem.six, elem.seven, elem.eight, elem.nine, elem.ten, elem.eleven, elem.twelve)
});
stmt.finalize()
});
db.close();
var connectParams = {
host: 'localhost',
port: 61613,
connectHeaders: {
host: 'localhost',
login: 'admin',
passcode: 'admin'
}
};
stompit.connect(connectParams, function (error, client) {
if (error) {
console.log('Unable to connect: ' + error.message);
return;
}
var transaction = client.begin();
AMQEntries.forEach((element) => {
transaction.send({ 'destination': '/queue/dev', "content-type": "application/json", "persistent": "true" }).end(JSON.stringify(element));
})
transaction.commit();
client.disconnect(function (error) {
if (error) {
console.log('Error while disconnecting: ' + error.message);
return;
}
console.log('Sent messages');
});
});