diff --git a/backend/src/core/api/draft/draft.controller.js b/backend/src/core/api/draft/draft.controller.js index 6ef88c9..5bc0ed8 100644 --- a/backend/src/core/api/draft/draft.controller.js +++ b/backend/src/core/api/draft/draft.controller.js @@ -1,9 +1,16 @@ +import { DocumentService } from 'core/modules/document/service/document.service'; import { DraftService } from 'core/modules/draft/services'; import { CreateDraftDto } from 'core/modules/draft/dto'; import { ValidHttpResponse } from 'packages/handler/response/validHttp.response'; class Controller { constructor() { + this.service = DocumentService; + } + + listDrafts = async req => { + const userId = req.user.payload.id; + const data = await this.service.listDrafts(userId); this.service = DraftService; } diff --git a/backend/src/core/api/draft/draft.resolver.js b/backend/src/core/api/draft/draft.resolver.js index cce013d..fb31ac3 100644 --- a/backend/src/core/api/draft/draft.resolver.js +++ b/backend/src/core/api/draft/draft.resolver.js @@ -1,4 +1,20 @@ import { Module } from 'packages/handler/Module'; +import { DraftController } from './draft.controller'; + +export const DraftResolver = Module.builder() + .addPrefix({ + prefixPath: '/drafts', + tag: 'drafts', + module: 'DraftModule' + }) + .register([ + { + route: '/', + method: 'get', + controller: DraftController.listDrafts, + preAuthorization: true + } + ]); import { CreateDraftInterceptor } from 'core/modules/draft/interceptor'; import { DraftController } from './draft.controller'; diff --git a/backend/src/core/api/index.js b/backend/src/core/api/index.js index 5e0f725..176677e 100644 --- a/backend/src/core/api/index.js +++ b/backend/src/core/api/index.js @@ -5,6 +5,7 @@ import { LawyerResolver } from 'core/api/lawyer/lawyer.resolver'; import { UploadResolver } from 'core/api/upload'; import { TemplateResolver } from 'core/api/template'; import { DocumentResolver } from 'core/api/document'; +import { DraftResolver } from 'core/api/draft'; import { HandlerResolver } from '../../packages/handler/HandlerResolver'; import { AuthResolver } from './auth/auth.resolver'; import { LawResolver } from './law/law.resolver'; @@ -25,6 +26,7 @@ export const ModuleResolver = HandlerResolver LawResolver, TemplateResolver, DocumentResolver, + DraftResolver AnalysisResolver, DraftResolver, ChatRequestResolver, diff --git a/backend/src/core/modules/document/service/document.service.js b/backend/src/core/modules/document/service/document.service.js index 73a614f..3c14793 100644 --- a/backend/src/core/modules/document/service/document.service.js +++ b/backend/src/core/modules/document/service/document.service.js @@ -103,6 +103,29 @@ class Service { } } + async listDrafts(userId) { + try { + return await prisma.documents.findMany({ + where: { + user_id: userId, + is_draft: true, + deleted_at: null + }, + include: { + templates: { + select: { + name: true, + description: true + } + } + }, + orderBy: { updated_at: 'desc' } + }); + } catch (error) { + throw new InternalServerException(error.message); + } + } + async getDocumentById(userId, documentId) { try { const document = await prisma.documents.findFirst({