From bf701d8838c089d9c43f4c458b79eea7de8dab21 Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Wed, 25 Aug 2021 23:07:40 -0700 Subject: [PATCH] =?UTF-8?q?=E2=AC=87=EF=B8=8F=20Support=20for=20multiple?= =?UTF-8?q?=20bundles=20in=20comic=20model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/comic.model.ts | 2 +- services/import.service.ts | 42 +++++++++++++++++++++++--------------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/models/comic.model.ts b/models/comic.model.ts index 4a1fa49..a3d317b 100644 --- a/models/comic.model.ts +++ b/models/comic.model.ts @@ -46,7 +46,7 @@ const ComicSchema = mongoose.Schema({ acquisition: { wanted: Boolean, release: {}, - directconnect: {}, + directconnect: Array, torrent: { sourceApplication: String, magnet: String, diff --git a/services/import.service.ts b/services/import.service.ts index 3a8e5e0..5486438 100644 --- a/services/import.service.ts +++ b/services/import.service.ts @@ -70,10 +70,10 @@ export default class ProductsService extends Service { }; }> ) { - console.log("ASDASD", ctx.params); let volumeDetails; const comicMetadata = ctx.params; - if (comicMetadata.sourcedMetadata.comicvine && + if ( + comicMetadata.sourcedMetadata.comicvine && !isNil( comicMetadata.sourcedMetadata.comicvine .volume @@ -161,7 +161,8 @@ export default class ProductsService extends Service { ctx: Context<{ comicObjectId: string; resultId: string; - downloadResult: {}; + bundleId: string; + directoryIds: []; searchInstanceId: string; }> ) { @@ -169,21 +170,30 @@ export default class ProductsService extends Service { ctx.params.comicObjectId ); return new Promise((resolve, reject) => { - Comic.findByIdAndUpdate(comicObjectId, { - acquisition: { - directconnect: { - resultId: ctx.params.resultId, - downloadResult: ctx.params.downloadResult, - searchInstanceId: ctx.params.searchInstanceId, + Comic.findByIdAndUpdate( + comicObjectId, + { + $push: { + "acquisition.directconnect": { + resultId: + ctx.params.resultId, + bundleId: ctx.params.bundleId, + directoryIds: ctx.params.directoryIds, + searchInstanceId: + ctx.params + .searchInstanceId, + }, + }, + }, + { new: true, safe: true, upsert: true }, + (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); } } - }, { new: true}, (err, result) =>{ - if(err) { - reject(err); - } else { - resolve(result); - } - }); + ); }); }, },