Files
server/src/repositories/itemRepository.ts

48 lines
1.5 KiB
TypeScript

import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { Item } from '#entities/item'
class ItemRepository extends BaseRepository {
async getById(id: UUID): Promise<Item | null> {
try {
const repository = this.getEntityManager().getRepository(Item)
const result = await repository.findOne({ id })
if (result) result.setEntityManager(this.getEntityManager())
return result
} catch (error: any) {
this.logger.error(`Failed to get item by ID: ${error instanceof Error ? error.message : String(error)}`)
return null
}
}
async getByIds(ids: UUID[]): Promise<Item[]> {
try {
const repository = this.getEntityManager().getRepository(Item)
const results = await repository.find({ id: ids })
for (const result of results) result.setEntityManager(this.getEntityManager())
return results
} catch (error: any) {
this.logger.error(`Failed to get items by IDs: ${error instanceof Error ? error.message : String(error)}`)
return []
}
}
async getAll(): Promise<Item[]> {
try {
const repository = this.getEntityManager().getRepository(Item)
const results = await repository.findAll()
for (const result of results) result.setEntityManager(this.getEntityManager())
return results
} catch (error: any) {
this.logger.error(`Failed to get all items: ${error instanceof Error ? error.message : String(error)}`)
return []
}
}
}
export default ItemRepository