Skip to content

Commit 7235ad6

Browse files
authored
Merge pull request #19 from patika-hepsiburada-react-bootcamp/dev
[#17] refactor: refactor done on controllers
2 parents e067842 + e3a25e0 commit 7235ad6

File tree

7 files changed

+66
-35
lines changed

7 files changed

+66
-35
lines changed

server/app.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ connectToDb();
1313
const app = express();
1414
app.use(cors());
1515
app.use(bodyParser.json());
16-
app.use(bodyParser.urlencoded({ extended: true }));
16+
app.use(bodyParser.urlencoded({ extended: false }));
1717

1818
app.use("/products", products);
1919
app.use("/colors", colors);

server/controllers/brands.controller.js

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,28 @@ const controller = {};
55

66
controller.getAll = async (req, res) => {
77
try {
8-
let data = await client.get("brans");
8+
// check if data exist in memory cache
9+
let data = await client.get("brands");
10+
let cachedData = JSON.parse(data);
911

10-
if (data) res.status(200).send(data);
11-
else {
12-
let brandData = await Brand.getAll();
12+
// if data exist, send it as a response
13+
if (cachedData) {
14+
if (cachedData <= 0) res.status(404).json("Brands data does not exist.");
15+
res.status(200).json(cachedData);
16+
} else {
17+
// pull data from db
18+
let brands = await Brand.getAll();
1319

14-
await client.set("brands", JSON.stringify({ ...brandData }));
15-
let brands = await client.get("brands");
16-
res.status(200).send(JSON.parse(brands));
20+
// cache the data
21+
await client.set("brands", JSON.stringify(brands));
22+
23+
// send data pulled from db
24+
if (brands <= 0) res.status(404).json("Brands data does not exist.");
25+
res.status(200).json(brands);
1726
}
1827
} catch (err) {
19-
console.log("Error in getting product- " + err);
20-
res.status(500).end("error");
28+
console.error("Error in getting brands data - " + err.message);
29+
res.status(500).json({ error: "Got error in getAll controller of brands" });
2130
}
2231
};
2332
export default controller;

server/controllers/colors.controller.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,29 @@ const controller = {};
55

66
controller.getAll = async (req, res) => {
77
try {
8+
// check if data exist in memory cache
89
let data = await client.get("colors");
10+
let cachedData = JSON.parse(data);
911

10-
if (data) res.status(200).send(data);
11-
else {
12-
let colorData = await Color.getAll();
12+
// if data exist, send it as a response
13+
if (cachedData) {
14+
if (cachedData <= 0) res.status(404).json("Colors data does not exist.");
15+
res.status(200).json(cachedData);
16+
} else {
17+
// pull data from db
18+
let colors = await Color.getAll();
1319

14-
await client.set("colors", JSON.stringify({ ...colorData }));
15-
let colors = await client.get("colors");
16-
res.status(200).send(JSON.parse(colors));
20+
// cache the data
21+
await client.set("colors", JSON.stringify(colors));
22+
23+
// send data pulled from db
24+
if (colors <= 0) res.status(404).json("Colors data does not exist.");
25+
res.status(200).json(colors);
1726
}
1827
} catch (err) {
19-
console.log("Error in getting product- " + err);
20-
res.status(500).end("Got error in getAll");
28+
console.error("Error in getting colors data - " + err.message);
29+
res.status(500).json({ error: "Got error in getAll controller of colors" });
2130
}
2231
};
32+
2333
export default controller;

server/controllers/products.controller.js

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,31 @@ const controller = {};
55

66
controller.getAll = async (req, res) => {
77
try {
8+
// check if data exist in memory cache
89
let data = await client.get("products");
9-
10-
if (data) res.status(200).send(data);
11-
else {
12-
let productData = await Product.getAll();
13-
14-
await client.set("products", JSON.stringify({ ...productData }));
15-
let products = await client.get("products");
16-
res.status(200).send(JSON.parse(products));
10+
let cachedData = JSON.parse(data);
11+
12+
// if data exist, send it as a response
13+
if (cachedData) {
14+
if (cachedData <= 0)
15+
res.status(404).json("Products data does not exist.");
16+
res.status(200).json(cachedData);
17+
} else {
18+
// pull data from db
19+
let products = await Product.getAll();
20+
21+
// cache the data
22+
await client.set("products", JSON.stringify(products));
23+
24+
// send data pulled from db
25+
if (products <= 0) res.status(404).json("Products data does not exist.");
26+
res.status(200).json(products);
1727
}
1828
} catch (err) {
19-
console.log("Error in getting product- " + err);
20-
res.status(500).send("Got error in getAll");
29+
console.error("Error in getting products data - " + err.message);
30+
res
31+
.status(500)
32+
.json({ error: "Got error in getAll controller of products" });
2133
}
2234
};
2335

server/models/brands.model.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import mongoose from "mongoose";
22

33
const BrandSchema = mongoose.Schema(
44
{
5-
_id: mongoose.Schema.ObjectId,
5+
_id: mongoose.Schema.Types.ObjectId,
66
name: String,
7-
price: [mongoose.Schema.ObjectId],
7+
products: [{ type: mongoose.Schema.Types.ObjectId, ref: "products" }],
88
},
99
{ collection: "brand" }
1010
);

server/models/colors.model.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import mongoose from "mongoose";
22

33
const ColorSchema = mongoose.Schema(
44
{
5-
_id: mongoose.Schema.ObjectId,
5+
_id: mongoose.Schema.Types.ObjectId,
66
name: String,
7-
price: [mongoose.Schema.ObjectId],
7+
products: [{ type: mongoose.Schema.Types.ObjectId, ref: "products" }],
88
},
99
{ collection: "color" }
1010
);

server/models/products.model.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ import mongoose from "mongoose";
22

33
const ProductSchema = mongoose.Schema(
44
{
5-
_id: mongoose.Schema.ObjectId,
5+
_id: mongoose.Schema.Types.ObjectId,
66
name: String,
77
color: String,
88
brand: String,
99
price: {
10-
base: mongoose.Decimal128,
10+
base: mongoose.Number,
1111
discountAmount: Number,
1212
},
1313
createdAt: Date,
@@ -23,7 +23,7 @@ ProductsModel.getById = async (id) => {
2323
};
2424

2525
ProductsModel.getAll = async () => {
26-
return ProductsModel.find({});
26+
return ProductsModel.find();
2727
};
2828

2929
export default ProductsModel;

0 commit comments

Comments
 (0)