Skip to content
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
3,002 changes: 2,469 additions & 533 deletions package-lock.json

Large diffs are not rendered by default.

12 changes: 8 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,18 @@
"version": "0.0.1",
"description": "Bookshop - API",
"main": "src/app.js",
"type": "module",
"scripts": {
"start": "pm2-runtime --json process.yml"
"start": "pm2-runtime --json process.yml",
"test": "node --watch src/server.js"
},
"author": "sagarkbhatt",
"license": "MIT",
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.16.4",
"mongoose": "^5.13.15"
"body-parser": "^1.20.2",
"express": "^4.19.2",
"mongodb": "^6.7.0",
"mongoose": "^8.4.1",
"pm2": "^5.4.0"
}
}
10 changes: 5 additions & 5 deletions src/app.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
const express = require("express");
import express from "express"
const app = express();
const BodyParser = require("body-parser");
const BookRoutes = require("./routes/BookRoutes");
import BodyParser from "body-parser"
import BookRoutes from "./routes/BookRoutes.js"

// parse application/json
app.use(BodyParser.json());

app.use("/api/book", BookRoutes);
app.use("/api/books", BookRoutes);

module.exports = app;
export default app;
53 changes: 36 additions & 17 deletions src/controller/BookController.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,41 @@
const Book = require("./../services/BookService");
function BookController() {
const listBooks = function(req, res) {
Book.list().then(data => res.json(data));
};
import Book from "../models/Book.js";
class BookController {

getAll = async (req, res) => {
try {
const book = Book.find()
res.status(200).json(book)
} catch (error) {
res.status(404).json({message: "Book no found", error})
}
}
addBook = async (req, res) => {
try {
const { title, description,price, qty } = req.body
const newBook = new Book({title, description, price, qty})
await newBook.save()

const addBooks = function(req, res) {
Book.add(req.body).then(data => res.json(data));
};
res.status(201).json({ message: 'Add Book successfully', book: newBook });
} catch (error) {
res.status(500).jso({message: 'Error creating book', error})
}

const deleteBooks = function(req, res) {
Book.delete(req.param.id).then(data => res.json(data));
};
}

return {
list: listBooks,
add: addBooks,
delete: deleteBooks
};
deleteBook = async (req, res) => {
try {
const { bookId } = req.params;
const deleteBook = await Book.findByIdAndDelete(bookId)

if(!deleteBook) {
res.status(404).json({message: "Book Not Found"})
}
res.status(200).json({matchMedia: "Book delete successfully"})
} catch (error) {
res.status(500).json({message: "error deleting book", error})
}
}
}

module.exports = BookController();
export default new BookController();

28 changes: 10 additions & 18 deletions src/db/DBConnection.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,14 @@
const mongoose = require("mongoose");
import mongoose from "mongoose";

const serverURI = process.env.DATABASE_URL || "mongodb://mongo/book";
const serverURI = process.env.DATABASE_URL || "your database url";

class DBConnection {
constructor() {
this._connect();
const connectToDatabase = async () => {
try {
await mongoose.connect(serverURI, { useNewUrlParser: true });
console.log("Database connection successful");
} catch (error) {
console.error("Database connection error", error);
}
_connect() {
mongoose
.connect(serverURI, { useNewUrlParser: true })
.then(() => {
console.log("Database connection successful");
})
.catch(err => {
console.error("Database connection error");
console.log( err);
});
}
}
};

module.exports = new DBConnection();
export default connectToDatabase;
21 changes: 16 additions & 5 deletions src/models/Book.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,24 @@
const mongoose = require("mongoose");
import mongoose from "mongoose"

const BookSchema = new mongoose.Schema({
title: {
type: String,
required: true
},
desc: String,
qty: Number,
price: Number
description: {
type: String,
required: true
},
price: {
type: Number,
required: true
},
qty: {
type: Number,
required: true
}
});

module.exports = mongoose.model("Book", BookSchema);
const Book = mongoose.model("book", BookSchema)

export default Book
14 changes: 7 additions & 7 deletions src/routes/BookRoutes.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const express = require("express");
const router = express.Router();
const BookController = require("./../controller/BookController");
import {Router} from "express";
const router = Router();
import BookController from "../controller/BookController.js";

router.get("/list", BookController.list);
router.post("/add", BookController.add);
router.delete("/delete", BookController.delete);
router.get("/api/books", BookController.getAll);
router.post("/api/createbooks", BookController.addBook);
router.delete("/api/books/:bookId", BookController.deleteBook);

module.exports = router;
export default router;
11 changes: 6 additions & 5 deletions src/server.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
const app = require("./app");
const db = require("./db/DBConnection");
import app from "./app.js"
import db from "./db/DBConnection.js"
db()

app.set("port", process.env.PORT || 8080);
const PORT = process.env.PORT || 8080

app.listen(app.get("port"), () => {
console.log("Express server started and running!");
app.listen(PORT, () => {
console.log(`server is running on port http://localhost${PORT}`);
});
4 changes: 2 additions & 2 deletions src/services/BookService.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const Book = require("../models/Book");
import Book from "./../models/Book.js";

function BookService() {
return {
Expand All @@ -8,4 +8,4 @@ function BookService() {
};
}

module.exports = BookService();
export default BookService();