From 40c8087c1cf2a8bcabac2b2f03120115068f6772 Mon Sep 17 00:00:00 2001 From: Nevo David Date: Thu, 10 Jul 2025 19:54:40 +0700 Subject: [PATCH] feat: save errors --- .../database/prisma/posts/posts.repository.ts | 29 +++++++++++++++++-- .../src/database/prisma/schema.prisma | 17 +++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/libraries/nestjs-libraries/src/database/prisma/posts/posts.repository.ts b/libraries/nestjs-libraries/src/database/prisma/posts/posts.repository.ts index c50638ce..c55b48a5 100644 --- a/libraries/nestjs-libraries/src/database/prisma/posts/posts.repository.ts +++ b/libraries/nestjs-libraries/src/database/prisma/posts/posts.repository.ts @@ -23,7 +23,8 @@ export class PostsRepository { private _popularPosts: PrismaRepository<'popularPosts'>, private _comments: PrismaRepository<'comments'>, private _tags: PrismaRepository<'tags'>, - private _tagsPosts: PrismaRepository<'tagsPosts'> + private _tagsPosts: PrismaRepository<'tagsPosts'>, + private _errors: PrismaRepository<'errors'> ) {} getOldPosts(orgId: string, date: string) { @@ -264,8 +265,8 @@ export class PostsRepository { }); } - changeState(id: string, state: State, err?: string) { - return this._post.model.post.update({ + async changeState(id: string, state: State, err?: string) { + const update = await this._post.model.post.update({ where: { id, }, @@ -273,7 +274,29 @@ export class PostsRepository { state, error: typeof err === 'string' ? err : JSON.stringify(err), }, + include: { + integration: { + select: { + providerIdentifier: true, + }, + }, + }, }); + + if (state === 'ERROR') { + try { + await this._errors.model.errors.create({ + data: { + message: typeof err === 'string' ? err : JSON.stringify(err), + organizationId: update.organizationId, + platform: update.integration.providerIdentifier, + postId: update.id, + }, + }); + } catch (err) {} + } + + return update; } async changeDate(orgId: string, id: string, date: string) { diff --git a/libraries/nestjs-libraries/src/database/prisma/schema.prisma b/libraries/nestjs-libraries/src/database/prisma/schema.prisma index 284d93ba..21e26b3d 100644 --- a/libraries/nestjs-libraries/src/database/prisma/schema.prisma +++ b/libraries/nestjs-libraries/src/database/prisma/schema.prisma @@ -39,6 +39,7 @@ model Organization { autoPost AutoPost[] sets Sets[] thirdParty ThirdParty[] + errors Errors[] } model Tags { @@ -405,6 +406,7 @@ model Post { payoutProblems PayoutProblems[] comments Comments[] tags TagsPosts[] + errors Errors[] error String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt @@ -638,6 +640,21 @@ model ThirdParty { @@index([deletedAt]) } +model Errors { + id String @id @default(uuid()) + message String + platform String + organizationId String + organization Organization @relation(fields: [organizationId], references: [id]) + postId String + post Post @relation(fields: [postId], references: [id]) + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@index([organizationId]) + @@index([createdAt]) +} + enum OrderStatus { PENDING ACCEPTED