Skip to content

Commit 48627cb

Browse files
authored
Merge pull request #11 from skerr92/main
features for 0.0.5 release
2 parents 94e3d91 + 5b73dc9 commit 48627cb

File tree

6 files changed

+81
-13
lines changed

6 files changed

+81
-13
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ local-secrets.json
55
[Uu]ploads/*
66
[Aa]ssets/*.*
77
[Aa]ssets/*
8-
[Nn]ode_modules/*
8+
[Nn]ode_modules/*
9+
[Ll]og.file

frontend/app.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ angular.module('pcbApp', [])
103103
.then(response => {
104104
ctrl.parts.push(response.data.data);
105105
ctrl.newPart = {};
106+
$window.location.reload();
106107
});
107108
};
108109

@@ -140,6 +141,7 @@ angular.module('pcbApp', [])
140141
.then(response => {
141142
console.log(response.data.message);
142143
ctrl.getParts();
144+
$window.location.reload();
143145
});
144146
};
145147

package-lock.json

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"crypto-js": "^4.2.0",
2020
"csv-parser": "^3.0.0",
2121
"express": "^4.19.2",
22+
"fs": "0.0.1-security",
2223
"http-server": "^13.0.2",
2324
"jsonwebtoken": "^9.0.2",
2425
"multer": "^1.4.5-lts.1",

server.js

Lines changed: 70 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const bcrypt = require('bcryptjs');
99
const jwt = require('jsonwebtoken');
1010
const CryptoJS = require('crypto-js');
1111

12-
const txtfs = require('node:fs');
12+
const txtfs = require('fs');
1313

1414
const app = express();
1515
const port = 3000;
@@ -204,15 +204,43 @@ app.get('/api/parts', authenticateJWT, (req, res) => {
204204
// Add a new part for the authenticated user
205205
app.post('/api/parts', authenticateJWT, (req, res) => {
206206
const { name, value, footprint, description, quantity } = req.body;
207+
const get_sql = 'SELECT * FROM parts WHERE name = ? AND footprint = ? AND value = ? AND user_id = ?';
207208
const sql = 'INSERT INTO parts (version, user_id, name, value, footprint, description, quantity) VALUES (?, ?, ?,?, ?, ?, ?)';
208-
db.run(sql, [version, req.user.id, name, value, footprint, description, quantity], function(err) {
209+
const updatesql = 'UPDATE parts SET quantity = ? WHERE user_id = ? AND id = ?';
210+
db.all(get_sql, [name, footprint, value, req.user.id], function(err,rows) {
209211
if (err) {
210-
return res.status(400).json({ error: err.message });
212+
console.log("couldn't add part...");
213+
return res.status(400).json({ error: err.message});
211214
}
212-
res.json({
213-
message: 'success',
214-
data: { id: this.lastID, name, value, footprint, description: description, quantity }
215-
});
215+
console.log(rows[0]);
216+
if (rows[0] == null)
217+
{
218+
db.run(sql, [version, req.user.id, name, value, footprint, description, quantity], function(err) {
219+
if (err) {
220+
return res.status(400).json({ error: err.message });
221+
}
222+
res.json({
223+
message: 'success',
224+
data: { id: this.lastID, name, value, footprint, description: description, quantity }
225+
});
226+
});
227+
}
228+
else
229+
{
230+
console.log(rows[0]);
231+
part_count = rows[0].quantity
232+
part_id = rows[0].id
233+
new_count = (parseInt(part_count) + parseInt(quantity));
234+
db.run(updatesql, [new_count, req.user.id, part_id], function (err) {
235+
if (err) {
236+
console.log("couldn't update count...");
237+
return res.status(400).json({ error: err.message});
238+
}
239+
res.json({ message: 'success'});
240+
});
241+
242+
}
243+
216244
});
217245
});
218246

@@ -369,12 +397,43 @@ app.post('/api/upload', authenticateJWT, upload.single('file'), (req, res) => {
369397
.on('end', () => {
370398
parts.forEach(part => {
371399
const { name, value, footprint, description, quantity } = part;
372-
const sql = 'INSERT INTO partlist (version, user_id, name, value, footprint, description, quantity) VALUES (?,?, ?, ?, ?, ?, ?)';
373-
const params = [version, req.user.id, name, value, footprint, description, quantity];
374-
db.run(sql, params, function(err) {
400+
const get_sql = 'SELECT * FROM parts WHERE name = ? AND footprint = ? AND value = ? AND user_id = ?';
401+
const sql = 'INSERT INTO parts (version, user_id, name, value, footprint, description, quantity) VALUES (?, ?, ?,?, ?, ?, ?)';
402+
const updatesql = 'UPDATE parts SET quantity = ? WHERE user_id = ? AND id = ?';
403+
db.all(get_sql, [name, footprint, value, req.user.id], function(err,rows) {
375404
if (err) {
376-
console.error(err.message);
405+
console.log("couldn't add part...");
406+
return res.status(400).json({ error: err.message});
407+
}
408+
console.log(rows[0]);
409+
if (rows[0] == null)
410+
{
411+
db.run(sql, [version, req.user.id, name, value, footprint, description, quantity], function(err) {
412+
if (err) {
413+
return res.status(400).json({ error: err.message });
414+
}
415+
416+
});
417+
}
418+
else
419+
{
420+
console.log(rows[0]);
421+
part_count = rows[0].quantity
422+
part_id = rows[0].id
423+
console.log("part count: ", part_count);
424+
new_count = (parseInt(part_count) + parseInt(quantity));
425+
console.log("count being added: ", new_count);
426+
db.run(updatesql, [new_count, req.user.id, part_id], function (err) {
427+
if (err) {
428+
console.log("couldn't update count...");
429+
return res.status(400).json({ error: err.message});
430+
}
431+
console.log("do where get to this point?");
432+
433+
});
434+
377435
}
436+
378437
});
379438
});
380439
res.json({ message: 'CSV file successfully processed' });

version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.0.4
1+
0.0.5

0 commit comments

Comments
 (0)