diff --git a/src/controllers/api/abortDojoComponentController.ts b/src/controllers/api/abortDojoComponentController.ts index da10a839..b5218b3f 100644 --- a/src/controllers/api/abortDojoComponentController.ts +++ b/src/controllers/api/abortDojoComponentController.ts @@ -9,11 +9,19 @@ export const abortDojoComponentController: RequestHandler = async (req, res) => const guild = await getGuildForRequestEx(req, inventory); const request = JSON.parse(String(req.body)) as IAbortDojoComponentRequest; // TODO: Move already-contributed credits & items to the clan vault - guild.DojoComponents.pull({ _id: request.ComponentId }); + if (request.DecoId) { + const component = guild.DojoComponents.id(request.ComponentId)!; + const decoIndex = component.Decos!.findIndex(x => x._id.equals(request.DecoId)); + component.Decos!.splice(decoIndex, 1); + } else { + guild.DojoComponents.pull({ _id: request.ComponentId }); + } await guild.save(); res.json(getDojoClient(guild, 0)); }; -export interface IAbortDojoComponentRequest { +interface IAbortDojoComponentRequest { + DecoType?: string; ComponentId: string; + DecoId?: string; }