Skip to content
This repository was archived by the owner on Aug 17, 2024. It is now read-only.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions 2-api/server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
const express=require('express')
const app=express()
const PORT = process.env.PORT || 3000;
const bodyParser = require("body-parser");
app.use(bodyParser.json());
const { Pool } = require('pg');
const db = new Pool({
user: 'codeyourfuture', // replace with you username
host: 'localhost',
database: 'cyf_ecommerce',
password:process.env.db_password ,
PORT: 5432
});
app.get('/',(req,res)=>{
res.send('Hello')
})
app.get("/customers", async function(req, res) {
const rs=await db.query('SELECT * FROM customers')
res.json(rs.rows)
});
app.get("/suppliers", async function(req, res) {
const rs=await db.query('SELECT * FROM suppliers')
res.json(rs.rows)
});
app.get("/products", async function(req, res) {
const rs=await db.query('SELECT product_name FROM products')
res.json(rs.rows)
});
app.get("/customers/:id", function(req, res) {
let custId = parseInt(req.params.id)
db.query("SELECT * FROM customers WHERE id = $1", [custId])
.then ((result) =>res.json(result.rows))
// TODO - more code here..)
.catch(err=> res.status(500).json({error:err}));
})
app.post("/customers", function (req, res) {
const newName = req.body.name;
const newAddress = req.body.address;
const newCity=req.body.city;
const newCountry = req.body.country;
const query =
"INSERT INTO customers (name, address, city, country) " +
"VALUES ($1, $2, $3, $4)";
db.query(query, [newName,newAddress,newCity,newCountry])
.then( (result) => res.send("Customer created."))
.catch(err=>res.status(500).json({error:err}))
});
app.post("/products",async function(req,res){
const newProductname=req.body.product_name;
const query=
"INSERT INTO products (product_name) VALUES ($1)";
const re=await db.query(query,[newProductname])
res.send('Product created')
})
app.get("/products",(req,res)=>{
const productName=req.query.product_name
const query=`SELECT product_name,unit_price, supplier_name FROM products INNER JOIN product_availability ON product_availability.prod_id = products.id INNER JOIN suppliers ON product_availability.supp_id = suppliers.id WHERE product_name ILIKE '%${ productName || "" }%' ; `
db.query(query,(err,result)=>{
res.send(result.rows)
})
})