UNPKG

skailan-contacts

Version:

Servicio de gestión de contactos para Skailan

82 lines 2.91 kB
import { Tag } from '../../../domain/entities/Tag'; export class TagPrismaRepository { prisma; constructor(prisma) { this.prisma = prisma; } async findById(id, organizationId) { try { const tagData = await this.prisma.tag.findFirst({ where: { id, organizationId }, }); return tagData ? new Tag(tagData.id, tagData.organizationId, tagData.name, tagData.createdAt, tagData.updatedAt) : null; } catch (error) { throw new Error(`Error finding tag by ID: ${error instanceof Error ? error.message : 'Unknown error'}`); } } async findByName(name, organizationId) { try { const tagData = await this.prisma.tag.findFirst({ where: { name, organizationId }, }); return tagData ? new Tag(tagData.id, tagData.organizationId, tagData.name, tagData.createdAt, tagData.updatedAt) : null; } catch (error) { throw new Error(`Error finding tag by name: ${error instanceof Error ? error.message : 'Unknown error'}`); } } async findAll(organizationId) { try { const tagsData = await this.prisma.tag.findMany({ where: { organizationId }, orderBy: { name: 'asc' } }); return tagsData.map(tagData => new Tag(tagData.id, tagData.organizationId, tagData.name, tagData.createdAt, tagData.updatedAt)); } catch (error) { throw new Error(`Error finding all tags: ${error instanceof Error ? error.message : 'Unknown error'}`); } } async save(tag) { try { const savedTag = await this.prisma.tag.upsert({ where: { id: tag.id }, update: { name: tag.name, updatedAt: new Date(), }, create: { id: tag.id, organizationId: tag.organizationId, name: tag.name, }, }); return new Tag(savedTag.id, savedTag.organizationId, savedTag.name, savedTag.createdAt, savedTag.updatedAt); } catch (error) { throw new Error(`Error saving tag: ${error instanceof Error ? error.message : 'Unknown error'}`); } } async delete(id, organizationId) { try { await this.prisma.tag.delete({ where: { id }, }); } catch (error) { throw new Error(`Error deleting tag: ${error instanceof Error ? error.message : 'Unknown error'}`); } } } //# sourceMappingURL=TagPrismaRepository.js.map