DEV Community

umasankar-swain
umasankar-swain

Posted on

How to update a record and delete that same record before update (nest js & mongoDB)

I want to update a record by its id but before update, i want to delete the previously stored data on that same record.What would be the process?

controller.ts

 public updateVendorServiceSpecialPrice = async (req: Request, res: Response, next: NextFunction): Promise<Response | void> => { try { if (req.body.vendorServiceId!='') { let results = await this.ServicesService.updateVendorServicesSpecialPrice(req.params.vendorServiceId, req.body); if (results != false) { this.success(res, 'Updated Successfully', 200, results._id); } } return await this.error(res, 'Something Went Wrong!.', 500); } catch (e) { next(e) } } 
Enter fullscreen mode Exit fullscreen mode

service.ts

 public async updateVendorServicesSpecialPrice( vendorServiceId: any, data: any ): Promise<any | Error> { try { return new Promise((resolve, reject) => { vendorServiceSpecialPriceSchema.findByIdAndUpdate( vendorServiceId, { ...data }, (err: any, success: any) => { if (err) { reject(err); } if (!success) { resolve(false); } else { resolve(success); } } ); }); } catch (e) { console.log('service error\n', e); throw e; } } 
Enter fullscreen mode Exit fullscreen mode

I am trying in this way to solve this,may be I am wrong,what would br the right process:

 public async updateVendorServicesSpecialPrice( vendorServiceId: any, data: any ): Promise<any | Error> { try { return new Promise((resolve, reject) => { vendorServiceSpecialPriceSchema.deleteOne({vendorServiceId}) vendorServiceSpecialPriceSchema.findOneAndUpdate( vendorServiceId, { ...data }, { returnNewDocument: true }, (err: any, success: any) => { if (err) { reject(err); } if (!success) { resolve(false); } else { resolve(success); } } ); }); } catch (e) { console.log('service error\n', e); throw e; } } 
Enter fullscreen mode Exit fullscreen mode

Thanks for your time....

Top comments (0)