From c718456adc5392ed995013958f06d647e5b4f7b6 Mon Sep 17 00:00:00 2001 From: Rishi Ghan Date: Mon, 28 Aug 2023 23:56:44 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20jobResult=20aggregate=20query=20?= =?UTF-8?q?first=20draft?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/jobqueue.service.ts | 24 ++++++++++++++++++------ utils/uncompression.utils.ts | 5 ++++- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/services/jobqueue.service.ts b/services/jobqueue.service.ts index 76c1def..689845d 100644 --- a/services/jobqueue.service.ts +++ b/services/jobqueue.service.ts @@ -173,14 +173,26 @@ export default class JobQueueService extends Service { return await JobResult.aggregate([ { $group: { - _id: "$status", - // data: { $push: "$$ROOT._id" }, + _id: { + sessionId: "$sessionId", + status: "$status", + }, + earliestTimestamp: { $min: "$timestamp" }, count: { $sum: 1 }, }, }, - - { $sort: { timestamp: -1 } }, - { $skip: 0 }, + { + $group: { + _id: "$_id.sessionId", + statuses: { + $push: { + status: "$_id.status", + earliestTimestamp: "$earliestTimestamp", + count: "$count", + }, + }, + }, + }, ]); }, }, @@ -243,7 +255,7 @@ export default class JobQueueService extends Service { id: ctx.params.id, status: "failed", failedReason: job.failedReason, - sessionId: job.returnvalue.sessionId, + sessionId: job.data.params.sessionId, timestamp: job.timestamp, }); diff --git a/utils/uncompression.utils.ts b/utils/uncompression.utils.ts index 69f5293..ef8e962 100644 --- a/utils/uncompression.utils.ts +++ b/utils/uncompression.utils.ts @@ -47,6 +47,7 @@ import { getMimeType, } from "../utils/file.utils"; import { convertXMLToJSON } from "./xml.utils"; +const { MoleculerError } = require("moleculer").Errors; const fse = require("fs-extra"); const Unrar = require("unrar"); interface RarFile { @@ -367,7 +368,9 @@ export const extractFromArchive = async (filePath: string) => { console.error( "Error inferring filetype for comicinfo.xml extraction." ); - throw new Error("Cannot infer filetype"); + throw new MoleculerError({}, 500, "FILETYPE_INFERENCE_ERROR", { + data: { message: "Cannot infer filetype."}, + }); } };