feat(scaffold): add src/items/items.service.ts [skip ci]
This commit is contained in:
45
src/items/items.service.ts
Normal file
45
src/items/items.service.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { Injectable, NotFoundException } from '@nestjs/common';
|
||||
|
||||
export interface Item {
|
||||
id: number;
|
||||
name: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
@Injectable()
|
||||
export class ItemsService {
|
||||
private readonly store = new Map<number, Item>();
|
||||
private counter = 1;
|
||||
|
||||
findAll(): Item[] {
|
||||
return [...this.store.values()];
|
||||
}
|
||||
|
||||
create(name: string, description = ''): Item {
|
||||
const item: Item = { id: this.counter++, name, description };
|
||||
this.store.set(item.id, item);
|
||||
return item;
|
||||
}
|
||||
|
||||
findOne(id: number): Item {
|
||||
const item = this.store.get(id);
|
||||
if (!item) throw new NotFoundException(`Item ${id} not found`);
|
||||
return item;
|
||||
}
|
||||
|
||||
update(id: number, name?: string, description?: string): Item {
|
||||
const item = this.findOne(id);
|
||||
const updated: Item = {
|
||||
id,
|
||||
name: name ?? item.name,
|
||||
description: description ?? item.description,
|
||||
};
|
||||
this.store.set(id, updated);
|
||||
return updated;
|
||||
}
|
||||
|
||||
remove(id: number): { deleted: number } {
|
||||
this.store.delete(id);
|
||||
return { deleted: id };
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user