Skip to content

Commit ecf8d96

Browse files
committed
refactor: replace callback with async/await.
1 parent 1df47e3 commit ecf8d96

File tree

1 file changed

+45
-49
lines changed

1 file changed

+45
-49
lines changed

todos/routes.js

Lines changed: 45 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -7,69 +7,67 @@ const tableParams = {
77
TableName: process.env.DYNAMODB_TABLE
88
};
99

10-
const listItem = (req, res) => {
11-
dynamoDb.scan(tableParams, (error, result) => {
12-
if (error) {
13-
console.error(error);
14-
res
15-
.statusCode(error.statusCode || 501)
16-
.send({ error: "Couldn't fetch the todos." });
17-
} else {
18-
res.send(result.Items);
19-
}
20-
});
10+
const listItem = async (req, res) => {
11+
try {
12+
let result = await dynamoDb.scan(tableParams).promise();
13+
res.send(result.Items);
14+
} catch (error) {
15+
console.error(error);
16+
res
17+
.statusCode(error.statusCode || 501)
18+
.send({ error: "Couldn't fetch the todos." });
19+
}
2120
};
2221

23-
const createItem = (req, res) => {
22+
const createItem = async (req, res) => {
2423
const timestamp = new Date().getTime();
2524
const { text } = req.body;
2625

2726
if (typeof text !== "string") {
2827
res.status(400).send({ error: "Couldn't create todo item." });
2928
}
3029

31-
const Item = {
30+
const item = {
3231
id: uuid.v1(),
3332
text: text,
3433
checked: false,
3534
createAt: timestamp,
3635
updateAt: timestamp
3736
};
3837

39-
const params = Object.assign({}, tableParams, { Item: Item });
38+
const params = Object.assign({}, tableParams, { Item: item });
4039

41-
dynamoDb.put(params, error => {
42-
if (error) {
43-
console.error(error);
44-
res.status(400).send("Couldn't create todo item.");
45-
} else {
46-
res.send(params);
47-
}
48-
});
40+
try {
41+
let result = await dynamoDb.put(params).promise();
42+
res.send(item);
43+
} catch (error) {
44+
console.error(error);
45+
res.status(400).send("Couldn't create todo item.");
46+
}
4947
};
5048

51-
const getItem = (req, res) => {
49+
const getItem = async (req, res) => {
5250
const params = Object.assign({}, tableParams, {
5351
Key: {
5452
id: req.params.id
5553
}
5654
});
5755

58-
dynamoDb.get(params, (error, result) => {
59-
if (error) {
60-
console.error(error);
61-
res.status(400).send({ error: "Could not get todo item" });
62-
}
56+
try {
57+
let result = await dynamoDb.get(params).promise();
6358

6459
if (result.Item) {
6560
res.json(result.Item);
6661
} else {
6762
res.status(400).send({ error: "Item not found" });
6863
}
69-
});
64+
} catch (error) {
65+
console.error(error);
66+
res.status(400).send({ error: "Could not get todo item" });
67+
}
7068
};
7169

72-
const editItem = (req, res) => {
70+
const editItem = async (req, res) => {
7371
const timestamp = new Date().getTime();
7472
const { text, checked } = req.body;
7573

@@ -96,33 +94,31 @@ const editItem = (req, res) => {
9694
ReturnValues: "ALL_NEW"
9795
});
9896

99-
dynamoDb.update(params, (error, result) => {
100-
if (error) {
101-
console.error(error);
102-
res
103-
.status(error.statusCoee || 501)
104-
.send({ error: "Could not update todo item" });
105-
} else {
106-
res.send(result.Attributes);
107-
}
108-
});
97+
try {
98+
let result = await dynamoDb.update(params).promise();
99+
res.send(result.Attributes);
100+
} catch (error) {
101+
console.error(error);
102+
res
103+
.status(error.statusCoee || 501)
104+
.send({ error: "Could not update todo item" });
105+
}
109106
};
110107

111-
const deleteItem = (req, res) => {
108+
const deleteItem = async (req, res) => {
112109
const params = Object.assign({}, tableParams, {
113110
Key: {
114111
id: req.params.id
115112
}
116113
});
117114

118-
dynamoDb.delete(params, error => {
119-
if (error) {
120-
console.error(error);
121-
res.status(501).send({ error: "Could not delete toto item" });
122-
} else {
123-
res.status(204).send();
124-
}
125-
});
115+
try {
116+
await dynamoDb.delete(params).promise();
117+
res.status(204).send();
118+
} catch (error) {
119+
console.error(error);
120+
res.status(501).send({ error: "Could not delete toto item" });
121+
}
126122
};
127123

128124
module.exports = { listItem, createItem, getItem, editItem, deleteItem };

0 commit comments

Comments
 (0)