I need to update the status so in this code, I have hardcode the key name { user_status_is_active: isActivate },
. but I have to pass it dynamically. i tried like {
${this.entityName}_status_is_active: isActivate }
but it doesn't work. Can anyone tell me how to achieve it?
// dynamic value comes from schema constant
this.entityName
updateStatus = async (request: Request, response: Response, isActivate: boolean) => {
try {
const dbResponse = await this.model.updateOne(
{ _id: request.params.id },
{ user_status_is_active: isActivate },
{ runValidators: true },
);
if ('nModified' in dbResponse && dbResponse.nModified! < 1) {
response.send(`${this.entityName} not modified.`);
} else {
response.send(`${this.entityName} ${isActivate ? 'activated' : 'deactivated'} successfully.`);
}
} catch (err) {
response.send(err.message);
}
};
You can use Computed property name to do it. Something like:
const dbResponse = await this.model.updateOne(
{ _id: request.params.id },
{ [`${this.entityName}_status_is_active`]: isActivate },
{ runValidators: true },
);