From 1ad879f9305b74362d3df626f1e2340c854eb01e Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Sun, 26 Oct 2025 11:32:45 +0330 Subject: [PATCH] fix : update product : approved --- src/common/enums/message.enum.ts | 2 +- src/modules/product/product.controller.ts | 2 +- .../product/providers/product.service.ts | 29 ++++++++++++++++++- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/common/enums/message.enum.ts b/src/common/enums/message.enum.ts index 79289a1..bf428c8 100644 --- a/src/common/enums/message.enum.ts +++ b/src/common/enums/message.enum.ts @@ -312,7 +312,7 @@ export const enum AdminMessage { UserNameNotEmpty = "نام کاربری نباید خالی باشد", RoleNotEmpty = "نقش کاربر نباید خالی باشد", PasswordNotEmpty = "پسورد نباید خالی باشد", - AdminIsExist = "این نام کاربری قبلا ثبت شده است", + AdminIsExist = "این ایمیل یا شماره همراه قبلا ثبت شده است", RoleNotFound = "نقش ادمین یافت نشد", EmailNotEmpty = "ایمیل نباید خالی باشد", PhoneNotEmpty = "شماره موبایل نباید خالی باشد", diff --git a/src/modules/product/product.controller.ts b/src/modules/product/product.controller.ts index 965c2c5..95bfaef 100644 --- a/src/modules/product/product.controller.ts +++ b/src/modules/product/product.controller.ts @@ -143,7 +143,7 @@ class ProductController extends BaseController { @httpPost("/update/save", Guard.authSeller(), ValidationMiddleware.validateInput(UpdateProductFinalStepDTO)) public async updateProductFinalStep(@requestBody() updateProductFinalStepDto: UpdateProductFinalStepDTO, @request() req: Request) { const seller = req.user as ISeller; - const data = await this.productService.updateProductFinalStepS(updateProductFinalStepDto, seller._id.toString()); + const data = await this.productService.updateProductFinalStepForSeller(updateProductFinalStepDto, seller._id.toString()); return this.response({ data }, HttpStatus.Created); } // request to create a product by admin diff --git a/src/modules/product/providers/product.service.ts b/src/modules/product/providers/product.service.ts index 0741db2..051c02a 100644 --- a/src/modules/product/providers/product.service.ts +++ b/src/modules/product/providers/product.service.ts @@ -485,7 +485,34 @@ class ProductService { { imagesUrl, // step: CreateProductStep.Image, - // status: ProductStatus.Pending, + status: ProductStatus.Approved, + }, + { new: true }, + ); + + return { + message: ProductMessage.ProductUpdated, + updatedProduct, + }; + } + + async updateProductFinalStepForSeller(updateFinalStepDto: UpdateProductFinalStepDTO, ownerId: string) { + const product = await this.validateProduct(updateFinalStepDto.productId, ownerId); + + // ensure the product is in draft status + this.ensureDraftStatus(product.status); + + // ensure the step is correct + // this.ensureCorrectStep(product.step, CreateProductStep.Image); + + const imagesUrl = { cover: updateFinalStepDto.coverImage, list: updateFinalStepDto.imagesList }; + + const updatedProduct = await this.productRepo.model.findByIdAndUpdate( + updateFinalStepDto.productId, + { + imagesUrl, + // step: CreateProductStep.Image, + status: ProductStatus.Pending, }, { new: true }, );