Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

completed the expense-express project #3

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
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
87 changes: 86 additions & 1 deletion App.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,88 @@
const expense = [{id:1,description:"Food",amount:35}]

const express = require("express")

const app = express()

app.listen(9000, () => {
console.log("hey Iam listening port 9000")
})

app.use(express.json())

let expense = [
{ id: 150, description: "food", amount: 100 },
{ id: 70, description: "petrol", amount: 200 },
{ id: 50, description: "shopping", amount: 900 },
]

//displayin what are inside in our list
app.get("/expense", (req, res) => {
res.status(200).json({ Founded: expense.length, List: expense })

})

//creating and adding a new item in our list
app.post("/expense", (req, res) => {
let id = expense[expense.length - 1] ? expense[expense.length - 1].id + 1 : 1
expense.push({ id: id, description: req.body.description, amount: req.body.amount })
res.status(200).json({ message: "successfully created and added new item in your list expenses" })

})

//deleting specific id or item in our list
app.delete("/expense/:id", (req, res) => {

const deletedItem = parseInt(req.params.id)
let newUpdate = expense.filter((e) => e.id !== deletedItem)
expense = newUpdate
res.status(200).json({ message: `You've successfully deleted the item has an id of ${req.params.id}` })

})

//editing specific id and an object
app.put("/expense/:id", (req, res) => {
const edited = parseInt(req.params.id)

//
let i = expense.findIndex(o => o.id === edited);


// storing another new object from input body
let newObj = {
id: edited,
description: req.body.description || expense[i].description,
amount: req.body.amount || expense[i].amount,
}


//setting the update to my array
if (expense[i]) {
expense[i] = newObj
}


res.status(200).json({ message: `you've edited successfully the item has an id of ${edited}` })

})




//calculating total of our expense amount list
app.get("/expense/total", (req, res) => {
let total = 0
let sumHolder = 0
expense.map(filter => {
sumHolder = filter.amount
total += sumHolder
})

res.status(200).json(total)
})

//displaying specific item details
app.get("/expense/:id", (req, res) => {

let specificView = expense.filter((e) => e.id == req.params.id)
res.status(200).json("this is the item you've searched" + specificView)
})
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
"description": "",
"main": "App.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"start": "node App"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.18.2"
}
}
}