Skip to content

Commit f1b02ee

Browse files
Added basic structure of APIs
Added basic structure of APIs
0 parents  commit f1b02ee

File tree

6 files changed

+4715
-0
lines changed

6 files changed

+4715
-0
lines changed

app/controllers/login.controller.js

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import express from 'express';
2+
import bcrypt from 'bcrypt';
3+
import jwt from 'jsonwebtoken';
4+
import UserModel from "../models/user.model.js";
5+
6+
export const loginUser = (req,res) => {
7+
8+
try {
9+
if (req.body && req.body.email && req.body.password) {
10+
UserModel.find({ email: req.body.email }, (err, data) => {
11+
if (data.length > 0) {
12+
13+
if (bcrypt.compareSync(data[0].password, req.body.password)) {
14+
checkUserAndGenerateToken(data[0], req, res);
15+
} else {
16+
17+
res.status(400).json({
18+
errorMessage: 'Username or password is incorrect!',
19+
status: false
20+
});
21+
}
22+
23+
} else {
24+
res.status(400).json({
25+
errorMessage: 'Username or password is incorrect!',
26+
status: false
27+
});
28+
}
29+
})
30+
} else {
31+
res.status(400).json({
32+
errorMessage: 'Add proper parameter first!',
33+
status: false
34+
});
35+
}
36+
} catch (e) {
37+
res.status(400).json({
38+
errorMessage: 'Something went wrong!',
39+
status: false
40+
});
41+
}
42+
};
43+
44+
function checkUserAndGenerateToken(data, req, res) {
45+
jwt.sign({ user: data.email, id: data._id }, 'shhhhh11111', { expiresIn: '1d' }, (err, token) => {
46+
if (err) {
47+
res.status(400).json({
48+
status: false,
49+
errorMessage: err,
50+
});
51+
} else {
52+
res.json({
53+
message: 'Login Successfully.',
54+
token: token,
55+
status: true
56+
});
57+
}
58+
});
59+
}

app/controllers/product.controller.js

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
import ProductModel from "../models/product.model.js";
2+
3+
export const getProducts = (req,res) => {
4+
try {
5+
var query = {};
6+
query["$and"] = [];
7+
query["$and"].push({
8+
is_delete: false,
9+
user_id: req.user.id
10+
});
11+
12+
if (req.query && req.query.search) {
13+
query["$and"].push({
14+
name: { $regex: req.query.search }
15+
});
16+
}
17+
18+
var perPage = 5;
19+
var page = req.query.page || 1;
20+
21+
ProductModel.find(query, { date: 1, name: 1, id: 1, desc: 1, price: 1, discount: 1, image: 1 })
22+
.skip((perPage * page) - perPage).limit(perPage)
23+
.then((data) => {
24+
ProductModel.find(query).count()
25+
.then((count) => {
26+
27+
if (data && data.length > 0) {
28+
res.status(200).json({
29+
status: true,
30+
title: 'Product retrived.',
31+
products: data,
32+
current_page: page,
33+
total: count,
34+
pages: Math.ceil(count / perPage),
35+
});
36+
} else {
37+
res.status(400).json({
38+
errorMessage: 'There is no product available.',
39+
status: false
40+
});
41+
}
42+
43+
});
44+
45+
}).catch(err => {
46+
res.status(400).json({
47+
errorMessage: err.message || err,
48+
status: false
49+
});
50+
});
51+
} catch (e) {
52+
res.status(400).json({
53+
errorMessage: 'Something went wrong!',
54+
status: false
55+
});
56+
}
57+
}
58+
59+
export const addProduct = (req,res) => {
60+
61+
try {
62+
63+
if (req.body && req.body.name && req.body.price) {
64+
65+
let newProduct = new ProductModel();
66+
newProduct.product_name = req.body.name;
67+
newProduct.product_description = req.body.desc;
68+
newProduct.price = req.body.price;
69+
newProduct.discount = req.body.discount;
70+
newProduct.user_id = req.user.id;
71+
newProduct.save((err, data) => {
72+
if (err) {
73+
res.status(400).json({
74+
errorMessage: err,
75+
status: false
76+
});
77+
} else {
78+
res.status(200).json({
79+
status: true,
80+
title: 'Product Added successfully.'
81+
});
82+
}
83+
});
84+
85+
} else {
86+
res.status(400).json({
87+
errorMessage: 'Add proper parameter first!',
88+
status: false
89+
});
90+
}
91+
} catch (e) {
92+
res.status(400).json({
93+
errorMessage: 'Something went wrong!1212',
94+
status: false
95+
});
96+
}
97+
};
98+
99+
export const updateProduct = (req,res) => {
100+
try {
101+
if (req.files && req.body && req.body.name && req.body.desc && req.body.price &&
102+
req.body.id && req.body.discount) {
103+
104+
ProductModel.findById(req.body.id, (err, newProduct) => {
105+
106+
if (req.body.name) {
107+
newProduct.name = req.body.name;
108+
}
109+
if (req.body.desc) {
110+
newProduct.desc = req.body.desc;
111+
}
112+
if (req.body.price) {
113+
newProduct.price = req.body.price;
114+
}
115+
if (req.body.discount) {
116+
newProduct.discount = req.body.discount;
117+
}
118+
119+
newProduct.save((err, data) => {
120+
if (err) {
121+
res.status(400).json({
122+
errorMessage: err,
123+
status: false
124+
});
125+
} else {
126+
res.status(200).json({
127+
status: true,
128+
title: 'Product updated successfully.'
129+
});
130+
}
131+
});
132+
133+
});
134+
135+
} else {
136+
res.status(400).json({
137+
errorMessage: 'Add proper parameter first!',
138+
status: false
139+
});
140+
}
141+
} catch (e) {
142+
res.status(400).json({
143+
errorMessage: 'Something went wrong!',
144+
status: false
145+
});
146+
}
147+
}
148+
149+
export const deleteProduct = (req,res) => {
150+
try {
151+
if (req.body && req.body.id) {
152+
ProductModel.findByIdAndUpdate(req.body.id, { is_delete: true }, { new: true }, (err, data) => {
153+
if (data.is_delete) {
154+
res.status(200).json({
155+
status: true,
156+
title: 'Product deleted successfully.'
157+
});
158+
} else {
159+
res.status(400).json({
160+
errorMessage: err,
161+
status: false
162+
});
163+
}
164+
});
165+
} else {
166+
res.status(400).json({
167+
errorMessage: 'Add proper parameter first!',
168+
status: false
169+
});
170+
}
171+
} catch (e) {
172+
res.status(400).json({
173+
errorMessage: 'Something went wrong!',
174+
status: false
175+
});
176+
}
177+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import express from 'express';
2+
import UserModel from "../models/user.model.js";
3+
4+
export const registerUser = (req,res) => {
5+
6+
try {
7+
8+
if (req.body && req.body.username && req.body.password && req.body.email) {
9+
10+
UserModel.find({ email: req.body.email }, (err, data) => {
11+
12+
if (data.length == 0) {
13+
14+
let User = new UserModel({
15+
username: req.body.username,
16+
email: req.body.email,
17+
password: req.body.password
18+
});
19+
User.save((err, data) => {
20+
if (err) {
21+
res.status(400).json({
22+
errorMessage: err,
23+
status: false
24+
});
25+
} else {
26+
res.status(200).json({
27+
status: true,
28+
title: 'User Registered Successfully.'
29+
});
30+
}
31+
});
32+
33+
} else {
34+
res.status(400).json({
35+
errorMessage: `User with ${req.body.email} already exist!`,
36+
status: false
37+
});
38+
}
39+
40+
});
41+
42+
} else {
43+
res.status(400).json({
44+
errorMessage: 'Please fill all the fields',
45+
status: false
46+
});
47+
}
48+
} catch (e) {
49+
res.status(400).json({
50+
errorMessage: 'Something went wrong!',
51+
status: false
52+
});
53+
}
54+
};

0 commit comments

Comments
 (0)