From 894cb33c97cd99d019c7b20a9146d70c0dacd403 Mon Sep 17 00:00:00 2001 From: Nevo David Date: Fri, 11 Jul 2025 00:27:20 +0700 Subject: [PATCH] feat: set body --- .../src/database/prisma/posts/posts.repository.ts | 9 ++++++--- .../src/database/prisma/posts/posts.service.ts | 5 +++-- .../nestjs-libraries/src/database/prisma/schema.prisma | 1 + 3 files changed, 10 insertions(+), 5 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 c55b48a5..d6e1a274 100644 --- a/libraries/nestjs-libraries/src/database/prisma/posts/posts.repository.ts +++ b/libraries/nestjs-libraries/src/database/prisma/posts/posts.repository.ts @@ -265,14 +265,16 @@ export class PostsRepository { }); } - async changeState(id: string, state: State, err?: string) { + async changeState(id: string, state: State, err?: any, body?: any) { const update = await this._post.model.post.update({ where: { id, }, data: { state, - error: typeof err === 'string' ? err : JSON.stringify(err), + ...(err + ? { error: typeof err === 'string' ? err : JSON.stringify(err) } + : {}), }, include: { integration: { @@ -283,7 +285,7 @@ export class PostsRepository { }, }); - if (state === 'ERROR') { + if (state === 'ERROR' && err && body) { try { await this._errors.model.errors.create({ data: { @@ -291,6 +293,7 @@ export class PostsRepository { organizationId: update.organizationId, platform: update.integration.providerIdentifier, postId: update.id, + body: typeof body === 'string' ? body : JSON.stringify(body), }, }); } catch (err) {} diff --git a/libraries/nestjs-libraries/src/database/prisma/posts/posts.service.ts b/libraries/nestjs-libraries/src/database/prisma/posts/posts.service.ts index 7f563224..9cf63db6 100644 --- a/libraries/nestjs-libraries/src/database/prisma/posts/posts.service.ts +++ b/libraries/nestjs-libraries/src/database/prisma/posts/posts.service.ts @@ -282,7 +282,8 @@ export class PostsService { } async post(id: string) { - const [firstPost, ...morePosts] = await this.getPostsRecursively(id, true); + const allPosts = await this.getPostsRecursively(id, true); + const [firstPost, ...morePosts] = allPosts; if (!firstPost) { return; } @@ -337,7 +338,7 @@ export class PostsService { return; } } catch (err: any) { - await this._postRepository.changeState(firstPost.id, 'ERROR', err); + await this._postRepository.changeState(firstPost.id, 'ERROR', err, allPosts); if (err instanceof BadBody) { await this._notificationService.inAppNotification( firstPost.organizationId, diff --git a/libraries/nestjs-libraries/src/database/prisma/schema.prisma b/libraries/nestjs-libraries/src/database/prisma/schema.prisma index 21e26b3d..b95e3b5c 100644 --- a/libraries/nestjs-libraries/src/database/prisma/schema.prisma +++ b/libraries/nestjs-libraries/src/database/prisma/schema.prisma @@ -643,6 +643,7 @@ model ThirdParty { model Errors { id String @id @default(uuid()) message String + body String @default("{}") platform String organizationId String organization Organization @relation(fields: [organizationId], references: [id])