From 6c1c5110eb74d9c0096d1ac0a6adfcd7d5abaae5 Mon Sep 17 00:00:00 2001 From: life1code <148394396+life1code@users.noreply.github.com> Date: Fri, 27 Oct 2023 07:45:49 +0100 Subject: [PATCH] Update server.js --- server.js | 335 ++++++++---------------------------------------------- 1 file changed, 48 insertions(+), 287 deletions(-) diff --git a/server.js b/server.js index 9e2f78d..72f71e3 100644 --- a/server.js +++ b/server.js @@ -1,290 +1,51 @@ -var express = require("express") -var app = express() -var db = require("./database.js") -var cron = require('node-cron'); -var bodyParser = require("body-parser"); -const { request, response } = require("express"); -app.use(bodyParser.urlencoded({ extended: false })); -app.use(bodyParser.json()); - -let HTTP_PORT = 8080 -const cors = require('cors'); -app.use(cors({ - origin: '*' -})); - - - -// Start server -app.listen(HTTP_PORT, () => { - console.log("Server running on port %PORT%".replace("%PORT%", HTTP_PORT)) -}); - -app.get("/api/products", (req, res, next) => { - try { - var sql = "select * from products" - var params = [] - db.all(sql, params, (err, rows) => { - if (err) { - res.status(400).json({ "error": err.message }); - return; - } - res.json({ - "message": "success", - "data": rows - }) - }); - } catch (E) { - res.status(400).send(E); - } - -}); - -app.get("/api/products/:id", (req, res, next) => { - try { - var sql = "select * from products where id = ?" - var params = [req.params.id] - db.get(sql, params, (err, row) => { - if (err) { - res.status(400).json({ "error": err.message }); - return; - } - res.json({ - "message": "success", - "data": row - }) - }); - } catch (E) { - res.status(400).send(E); - } -}); - -app.get("/api/products/quantity/:quantity", (req, res, next) => { - try { - var row = "[]" - var sql = "select * from products where quantity > ?" - var params = [req.params.quantity] - db.get(sql, params, (err, row) => { - if (err) { - res.status(400).json({ "error": err.message }); - return; - } - res.json({ - "message": "success", - "data": row - }) - }); - } catch (E) { - res.status(400).send(E); - } -}); - -app.get("/api/products/unitPrice/:unitPrice", (req, res, next) => { - try { - var row = "[]" - var sql = "select * from products where unitPrice > ?" - var params = [req.params.unitPrice] - db.get(sql, params, (err, row) => { - if (err) { - res.status(400).json({ "error": err.message }); - return; - } else { - res.json({ - - "message": "success", - "data": row - }) - } - - }); - } catch (E) { - res.status(400).send(E); - } -}); - -app.post("/api/products/", (req, res, next) => { - - try { - var errors = [] - - if (!req.body) { - errors.push("An invalid input"); - } - - const { productName, - description, - category, - brand, - expiredDate, - manufacturedDate, - batchNumber, - unitPrice, - quantity, - createdDate - } = req.body; - - var sql = 'INSERT INTO products (productName, description, category, brand, expiredDate, manufacturedDate, batchNumber, unitPrice, quantity, createdDate) VALUES (?,?,?,?,?,?,?,?,?,?)' - var params = [productName, description, category, brand, expiredDate, manufacturedDate, batchNumber, unitPrice, quantity, createdDate] - db.run(sql, params, function (err, result) { - - if (err) { - res.status(400).json({ "error": err.message }) - return; - } else { - res.json({ - "message": "success", - "data": req.body, - "id": this.lastID - }) - } - - }); - } catch (E) { - res.status(400).send(E); - } -}); - +const express = require('express'); +const bodyParser = require('body-parser'); +const app = express(); +const port = 3000; // Change to your desired port number -app.put("/api/products/", (req, res, next) => { - - - const { - id, - productName, - description, - category, - brand, - expiredDate, - manufacturedDate, - batchNumber, - unitPrice, - quantity, - createdDate - } = req.body; - - db.run(`UPDATE products set productName = ?, description = ?, category = ?, brand = ?,expiredDate=?,manufacturedDate=?,batchNumber=?,unitPrice=?,quantity=?,createdDate=? WHERE id = ?`, - [productName, description, category, brand, expiredDate, manufacturedDate, batchNumber, unitPrice, quantity, createdDate, id], - function (err, result) { - if (err) { - res.status(400).json({ "error": res.message }) - return; - } - res.status(200).json({ updated: this.changes }); - }); -}); - - -app.delete("/api/products/delete/:id", (req, res, next) => { - try { - db.run( - 'DELETE FROM products WHERE id = ?', - req.params.id, - function (err, result) { - if (err) { - res.status(400).json({ "error": res.message }) - return; - } - res.json({ "message": "deleted", rows: this.changes }) - }); - } catch (E) { - res.status(400).send(E); - } -}); - -app.delete("/api/products/deleteAll/:id", (req, res, next) => { - try { - db.run( - 'DELETE FROM products WHERE id > ?', - req.params.id, - function (err, result) { - if (err) { - res.status(400).json({ "error": res.message }) - return; - } - res.json({ "message": "deleted", rows: this.changes }) - }); - } catch (E) { - res.status(400).send(E); - } -}); - - -app.get("/api/suppliers/", (req, res, next) => { - try { - var sql = "select * from suppliers" - var params = [] - db.all(sql, params, (err, rows) => { - if (err) { - res.status(400).json({ "error": err.message }); - return; - } - res.json({ - "message": "success", - "data": rows - }) - }); - } catch (E) { - res.status(400).send(E); - } - -}); - - -app.post("/api/suppliers/", (req, res, next) => { - - try { - var errors = [] - - if (!req.body) { - errors.push("An invalid input"); - } - - const { supplierName, - address, - joinedDate, - mobileNo - } = req.body; - - var sql = 'INSERT INTO suppliers (supplierName, address, joinedDate, mobileNo) VALUES (?,?,?,?)' - var params = [supplierName, address, joinedDate, mobileNo] - db.run(sql, params, function (err, result) { - - if (err) { - res.status(400).json({ "error": err.message }) - return; - } else { - res.json({ - "message": "success", - "data": req.body, - "id": this.lastID - }) - } - - }); - } catch (E) { - res.status(400).send(E); - } -}); +app.use(bodyParser.json()); -app.delete("/api/suppliers/deleteAll/:id", (req, res, next) => { - try { - db.run( - 'DELETE FROM suppliers WHERE id > ?', - req.params.id, - function (err, result) { - if (err) { - res.status(400).json({ "error": res.message }) - return; - } - res.json({ "message": "deleted", rows: this.changes }) - }); - } catch (E) { - res.status(400).send(E); - } +// Import your database connection library and the 'database.js' file. +const db = require('your-database-library'); +const database = require('./database'); + +// API to register a customer +app.post('/register', (req, res) => { + const customerData = req.body; + + // Add validation for email address and credit card number here. + // You can use regular expressions or a validation library. + + // Insert customer data into the 'customer' table + db.none( + `INSERT INTO customer (name, address, email, date_of_birth, gender, age, card_holder_name, card_number, expiry_date, cvv, timestamp) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)`, + [ + customerData.name, + customerData.address, + customerData.email, + customerData.dateOfBirth, + customerData.gender, + customerData.age, + customerData.cardHolderName, + customerData.cardNumber, + customerData.expiryDate, + customerData.cvv, + customerData.timestamp, + ] + ) + .then(() => { + res.status(201).json({ + message: `Customer ${customerData.name} has registered`, + customerId: '2', // This should be the generated ID from the database. + }); + }) + .catch((error) => { + console.error('Error registering customer:', error); + res.status(400).json({ message: 'Bad Request' }); + }); +}); + +// Start the server +app.listen(port, () => { + console.log(`Server is running on port ${port}`); }); - - -// Root path -app.get("/", (req, res, next) => { - res.json({ "message": "University of Moratuwa" }) -}); \ No newline at end of file