Skip to content

Commit 59db881

Browse files
Add services
1 parent e539cb5 commit 59db881

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

src/services/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default as ItemService } from "./item.service";

src/services/item.service.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { ItemDTO, ItemModel } from "../models";
2+
import { ErrorMessages } from "../utils";
3+
4+
class ItemService {
5+
async create(itemData: ItemDTO) {
6+
return await ItemModel.create(itemData);
7+
}
8+
9+
async get(itemId: string) {
10+
const item = await ItemModel.get(itemId);
11+
12+
if (!item) {
13+
throw new Error(ErrorMessages.ITEM_NOT_FOUND);
14+
}
15+
16+
return item;
17+
}
18+
19+
async getAll() {
20+
return await ItemModel.scan().exec();
21+
}
22+
23+
async update(itemId: string, itemData: ItemDTO) {
24+
const updatedItem = await ItemModel.update(itemId, itemData);
25+
26+
if (!updatedItem) {
27+
throw new Error(ErrorMessages.ITEM_NOT_FOUND);
28+
}
29+
30+
return updatedItem;
31+
}
32+
33+
async delete(itemId: string) {
34+
const item = await this.get(itemId);
35+
await ItemModel.delete(itemId);
36+
37+
return item;
38+
}
39+
}
40+
41+
export default ItemService;

0 commit comments

Comments
 (0)