UNPKG

skailan-contacts

Version:

Servicio de gestión de contactos para Skailan

52 lines 1.9 kB
import { ContactTag } from "../../../domain/entities/ContactTag"; export class ContactTagPrismaRepository { prisma; constructor(prisma) { this.prisma = prisma; } async addTagToContact(contactId, tagId, organizationId) { try { const newEntry = await this.prisma.contactTag.create({ data: { contactId, tagId, organizationId, }, }); return new ContactTag(newEntry.contactId, newEntry.tagId, newEntry.organizationId, newEntry.createdAt); } catch (error) { throw new Error(`Error adding tag to contact: ${error instanceof Error ? error.message : "Unknown error"}`); } } async removeTagFromContact(contactId, tagId, organizationId) { try { await this.prisma.contactTag.deleteMany({ where: { contactId, tagId, organizationId, }, }); } catch (error) { throw new Error(`Error removing tag from contact: ${error instanceof Error ? error.message : "Unknown error"}`); } } async findTagsByContact(contactId, organizationId) { try { const entries = await this.prisma.contactTag.findMany({ where: { contactId, organizationId, }, orderBy: { createdAt: "desc" }, }); return entries.map((entry) => new ContactTag(entry.contactId, entry.tagId, entry.organizationId, entry.createdAt)); } catch (error) { throw new Error(`Error finding tags by contact: ${error instanceof Error ? error.message : "Unknown error"}`); } } } //# sourceMappingURL=ContactTagPrismaRepository.js.map