skailan-contacts
Version:
Servicio de gestión de contactos para Skailan
52 lines • 1.9 kB
JavaScript
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