瀏覽代碼

fix: Few fixes

Owen Diffey 1 年之前
父節點
當前提交
b4baf910a5

+ 2 - 1
backend/src/JobQueue.ts

@@ -1,6 +1,5 @@
 import Job, { JobStatus } from "@/Job";
 import { JobOptions } from "@/types/JobOptions";
-import ModuleManager from "./ModuleManager";
 
 export class JobQueue {
 	private _concurrency: number;
@@ -125,6 +124,8 @@ export class JobQueue {
 				.then(callback?.resolve)
 				.catch(callback?.reject)
 				.finally(() => {
+					delete this._callbacks[job.getUuid()];
+
 					// If the current job is in the active jobs array, remove it, and then run the process function to run another job
 					const activeJobIndex = this._active.indexOf(job);
 					if (activeJobIndex > -1) {

+ 8 - 4
backend/src/modules/DataModule/GetDataJob.ts

@@ -36,14 +36,18 @@ export default abstract class GetDataJob extends DataModuleJob {
 		if (!Array.isArray(this._payload.queries))
 			throw new Error("Queries must be an array");
 
-		Object.values(this._payload.queries).forEach(query => {
-			if (typeof query !== "object" || Array.isArray(query))
+		Object.values(this._payload.queries).forEach((query: any) => {
+			if (!query || typeof query !== "object" || Array.isArray(query))
 				throw new Error("Query must be an object");
 
-			if (typeof query.filter !== "object" || Array.isArray(query.filter))
+			if (
+				!query.filter ||
+				typeof query.filter !== "object" ||
+				Array.isArray(query.filter)
+			)
 				throw new Error("Query filter must be an object");
 
-			if (typeof query.filter?.property !== "string")
+			if (typeof query.filter.property !== "string")
 				throw new Error("Query filter property must be a string");
 
 			if (

+ 12 - 2
backend/src/modules/DataModule/models/users/config.ts

@@ -1,16 +1,26 @@
+import { HydratedDocument } from "mongoose";
 import CacheModule from "@/modules/CacheModule";
 import getData from "./getData";
+import { UserModel } from "./schema";
 
 export default {
 	documentVersion: 4,
 	eventListeners: {
-		"model.users.updated": ({ doc }) => {
+		"model.users.updated": ({
+			doc
+		}: {
+			doc: HydratedDocument<UserModel>;
+		}) => {
 			CacheModule.removeMany([
 				`user-permissions.${doc._id}`,
 				`model-permissions.*.user.${doc._id}`
 			]);
 		},
-		"model.users.deleted": ({ oldDoc }) => {
+		"model.users.deleted": ({
+			oldDoc
+		}: {
+			oldDoc: HydratedDocument<UserModel>;
+		}) => {
 			CacheModule.removeMany([
 				`user-permissions.${oldDoc._id}`,
 				`model-permissions.*.user.${oldDoc._id}`