Remove tags from secrets when tag is deleted

This commit is contained in:
Maidul Islam
2023-02-10 19:33:40 -08:00
parent 1c3488f8db
commit 31293bbe06
2 changed files with 10 additions and 1 deletions
+7 -1
View File
@@ -2,7 +2,7 @@ import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import { Types } from 'mongoose'; import { Types } from 'mongoose';
import { import {
Membership, Membership, Secret,
} from '../../models'; } from '../../models';
import Tag, { ITag } from '../../models/tag'; import Tag, { ITag } from '../../models/tag';
import { Builder } from "builder-pattern" import { Builder } from "builder-pattern"
@@ -54,6 +54,12 @@ export const deleteWorkspaceTag = async (req: Request, res: Response) => {
const result = await Tag.findByIdAndDelete(tagId); const result = await Tag.findByIdAndDelete(tagId);
// remove the tag from secrets
await Secret.updateMany(
{ tags: { $in: [tagId] } },
{ $pull: { tags: tagId } }
);
res.json(result); res.json(result);
} }
+3
View File
@@ -109,6 +109,9 @@ const secretSchema = new Schema<ISecret>(
} }
); );
secretSchema.index({ tags: 1 }, { background: true })
const Secret = model<ISecret>('Secret', secretSchema); const Secret = model<ISecret>('Secret', secretSchema);
export default Secret; export default Secret;