From 99b3b191940972adcd312b77c22c8cf6f54fe833 Mon Sep 17 00:00:00 2001 From: Ly Tuan Kiet Date: Fri, 18 Oct 2024 14:54:31 +0700 Subject: [PATCH] ngusidandon --- src/Minio/minio.service.ts | 32 +------------------------------ src/Resume/resume.schema.ts | 38 ++++++++++++++++++++++--------------- 2 files changed, 24 insertions(+), 46 deletions(-) diff --git a/src/Minio/minio.service.ts b/src/Minio/minio.service.ts index edfddc6..52bfdf9 100644 --- a/src/Minio/minio.service.ts +++ b/src/Minio/minio.service.ts @@ -39,20 +39,7 @@ export class MinioService { 'GET', this.configService.get('BUCKET_NAME') ?? 'epess', `${category}/${id}`, - 3600, - ); - return url; - } - - async getNewFileUrl(id: string, category: string, fileUrl: string) { - if (await this.checkFileUrl(fileUrl)) { - return fileUrl; - } - const url = await this.minioClient.presignedUrl( - 'GET', - this.configService.get('BUCKET_NAME') ?? 'epess', - `${category}/${id}`, - 3600, + 0, ); return url; } @@ -64,23 +51,6 @@ export class MinioService { ); } - async checkFileUrl(fileUrl: string) { - // check if the file url is still valid by get X-Amz-Date= from the url and X-Amz-Expires from the url and compare with the current time - const url = new URL(fileUrl); - const _xAmzDate = url.searchParams.get('X-Amz-Date'); - const _xAmzExpires = url.searchParams.get('X-Amz-Expires'); - if (!_xAmzDate || !_xAmzExpires) { - return false; - } - const __xAmzDate = new Date(_xAmzDate); - const __xAmzExpires = new Date( - __xAmzDate.getTime() + parseInt(_xAmzExpires), - ); - const currentTime = new Date(); - return currentTime.getTime() < __xAmzExpires.getTime(); // true if the file url is still valid - } - - // fileName() { // generate a unique file name using uuid return uuidv4(); diff --git a/src/Resume/resume.schema.ts b/src/Resume/resume.schema.ts index 36395fb..799effa 100644 --- a/src/Resume/resume.schema.ts +++ b/src/Resume/resume.schema.ts @@ -24,20 +24,36 @@ export class ResumeSchema extends PothosSchema { return this.builder.prismaObject('Resume', { description: 'A resume in the system.', fields: (t) => ({ - id: t.exposeID('id'), - userId: t.exposeID('userId'), - centerId: t.exposeID('centerId'), - status: t.exposeString('status'), + id: t.exposeID('id', { + description: 'The ID of the resume.', + }), + userId: t.exposeID('userId', { + description: 'The ID of the user.', + }), + centerId: t.exposeID('centerId', { + description: 'The ID of the center.', + }), + status: t.expose('status', { + type: ResumeStatus, + nullable: true, + description: 'The status of the resume.', + }), createdAt: t.expose('createdAt', { type: 'DateTime', nullable: true, + description: 'The date and time the resume was created.', }), updatedAt: t.expose('updatedAt', { type: 'DateTime', nullable: true, + description: 'The date and time the resume was updated.', + }), + center: t.relation('center', { + description: 'The center for the resume.', + }), + resumeFile: t.relation('ResumeFile', { + description: 'The resume file for the resume.', }), - center: t.relation('center'), - resumeFile: t.relation('ResumeFile'), }), }); } @@ -53,16 +69,8 @@ export class ResumeSchema extends PothosSchema { resumeId: t.exposeID('resumeId', { description: 'The ID of the resume.', }), - fileUrl: t.string({ + fileUrl: t.exposeString('fileUrl', { description: 'The URL of the resume file.', - resolve: async (file, args, ctx) => { - // check if fileUrl is still valid - return await this.minioService.getNewFileUrl( - file.id, - 'resumes', - file.fileUrl, - ); - }, }), actualFileName: t.exposeString('actualFileName', { description: 'The original name of the resume file.',