浏览代码

refactor: Remove payload from Job._execute arguments

Owen Diffey 1 年之前
父节点
当前提交
417162d922

+ 1 - 1
backend/src/Job.ts

@@ -195,7 +195,7 @@ export default abstract class Job {
 
 			await this._authorize();
 
-			const data = await this._execute(this._payload);
+			const data = await this._execute();
 
 			if (this._context.getSocketId() && this._context.getCallbackRef()) {
 				await WebSocketModule.dispatch(

+ 3 - 1
backend/src/modules/DataModule/CreateJob.ts

@@ -13,7 +13,9 @@ export default abstract class CreateJob extends DataModuleJob {
 			throw new Error("Empty query object provided");
 	}
 
-	protected async _execute({ query }: { query: Record<string, any[]> }) {
+	protected async _execute() {
+		const { query } = this._payload;
+
 		const model = await DataModule.getModel(this.getModelName());
 
 		if (model.schema.path("createdBy"))

+ 4 - 2
backend/src/modules/DataModule/DeleteByIdJob.ts

@@ -1,4 +1,4 @@
-import { Types, isObjectIdOrHexString } from "mongoose";
+import { isObjectIdOrHexString } from "mongoose";
 import DataModule from "../DataModule";
 import DataModuleJob from "./DataModuleJob";
 
@@ -11,7 +11,9 @@ export default abstract class DeleteByIdJob extends DataModuleJob {
 			throw new Error("_id is not an ObjectId");
 	}
 
-	protected async _execute({ _id }: { _id: Types.ObjectId }) {
+	protected async _execute() {
+		const { _id } = this._payload;
+
 		const model = await DataModule.getModel(this.getModelName());
 
 		return model.deleteOne({ _id });

+ 3 - 3
backend/src/modules/DataModule/FindByIdJob.ts

@@ -1,4 +1,4 @@
-import { Types, isObjectIdOrHexString } from "mongoose";
+import { isObjectIdOrHexString } from "mongoose";
 import DataModule from "../DataModule";
 import DataModuleJob from "./DataModuleJob";
 
@@ -11,10 +11,10 @@ export default abstract class FindByIdJob extends DataModuleJob {
 			throw new Error("_id is not an ObjectId");
 	}
 
-	protected async _execute({ _id }: { _id: Types.ObjectId }) {
+	protected async _execute() {
 		const model = await DataModule.getModel(this.getModelName());
 
-		const query = model.findById(_id);
+		const query = model.findById(this._payload._id);
 
 		return query.exec();
 	}

+ 3 - 3
backend/src/modules/DataModule/GetDataJob.ts

@@ -1,6 +1,6 @@
 import DataModule from "../DataModule";
 import DataModuleJob from "./DataModuleJob";
-import { FilterType, GetData } from "./plugins/getData";
+import { FilterType } from "./plugins/getData";
 
 export default abstract class GetDataJob extends DataModuleJob {
 	protected override async _validate() {
@@ -61,9 +61,9 @@ export default abstract class GetDataJob extends DataModuleJob {
 			throw new Error("Operator must be one of; and, or, nor");
 	}
 
-	protected async _execute(payload: Parameters<GetData["getData"]>[0]) {
+	protected async _execute() {
 		const model = await DataModule.getModel(this.getModelName());
 
-		return model.getData(payload);
+		return model.getData(this._payload);
 	}
 }

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

@@ -1,4 +1,4 @@
-import { Types, isObjectIdOrHexString } from "mongoose";
+import { isObjectIdOrHexString } from "mongoose";
 import DataModule from "../DataModule";
 import DataModuleJob from "./DataModuleJob";
 
@@ -17,13 +17,9 @@ export default abstract class UpdateByIdJob extends DataModuleJob {
 			throw new Error("Empty query object provided");
 	}
 
-	protected async _execute({
-		_id,
-		query
-	}: {
-		_id: Types.ObjectId;
-		query: Record<string, any[]>;
-	}) {
+	protected async _execute() {
+		const { _id, query } = this._payload;
+
 		const model = await DataModule.getModel(this.getModelName());
 
 		return model.updateOne({ _id }, { $set: query });

+ 3 - 6
backend/src/modules/DataModule/models/news/jobs/Newest.ts

@@ -30,15 +30,12 @@ export default class Newest extends DataModuleJob {
 			throw new Error("Limit must be a number or undefined");
 	}
 
-	protected async _execute(payload?: {
-		showToNewUsers?: boolean;
-		limit?: number;
-	}) {
+	protected async _execute() {
 		const model = await DataModule.getModel(this.getModelName());
 
-		const query = model.find().newest(payload?.showToNewUsers);
+		const query = model.find().newest(this._payload?.showToNewUsers);
 
-		if (payload?.limit) return query.limit(payload?.limit);
+		if (this._payload?.limit) return query.limit(this._payload?.limit);
 
 		return query;
 	}

+ 2 - 2
backend/src/modules/DataModule/models/stations/jobs/Index.ts

@@ -28,7 +28,7 @@ export default class Index extends DataModuleJob {
 
 	protected override async _authorize() {}
 
-	protected async _execute(payload?: { adminFilter?: boolean }) {
+	protected async _execute() {
 		const model = await DataModule.getModel(this.getModelName());
 
 		const data = await model.find();
@@ -41,7 +41,7 @@ export default class Index extends DataModuleJob {
 			if (
 				isPublic(station) ||
 				(user && (isOwner(station, user) || isDj(station, user))) ||
-				(payload?.adminFilter &&
+				(this._payload?.adminFilter &&
 					(await this._context
 						.assertPermission("data.stations.index.adminFilter")
 						.then(() => true)

+ 4 - 8
backend/src/modules/DataModule/models/users/jobs/GetModelPermissions.ts

@@ -1,4 +1,4 @@
-import { Types, isObjectIdOrHexString } from "mongoose";
+import { isObjectIdOrHexString } from "mongoose";
 import CacheModule from "@/modules/CacheModule";
 import DataModule from "@/modules/DataModule";
 import { Models } from "@/types/Models";
@@ -28,13 +28,9 @@ export default class GetModelPermissions extends DataModuleJob {
 
 	protected override async _authorize() {}
 
-	protected async _execute({
-		modelName,
-		modelId
-	}: {
-		modelName: keyof Models;
-		modelId?: Types.ObjectId;
-	}) {
+	protected async _execute() {
+		const { modelName, modelId } = this._payload;
+
 		const user = await this._context.getUser().catch(() => null);
 		const permissions = await this._context.executeJob(GetPermissions);
 

+ 2 - 2
backend/src/modules/EventsModule/jobs/Subscribe.ts

@@ -39,11 +39,11 @@ export default class Subscribe extends Job {
 		await this._context.assertPermission(permission);
 	}
 
-	protected async _execute({ channel }: { channel: string }) {
+	protected async _execute() {
 		const socketId = this._context.getSocketId();
 
 		if (!socketId) throw new Error("No socketId specified");
 
-		await EventsModule.subscribeSocket(channel, socketId);
+		await EventsModule.subscribeSocket(this._payload.channel, socketId);
 	}
 }

+ 5 - 2
backend/src/modules/EventsModule/jobs/SubscribeMany.ts

@@ -48,11 +48,14 @@ export default class SubscribeMany extends Job {
 		);
 	}
 
-	protected async _execute({ channels }: { channels: string[] }) {
+	protected async _execute() {
 		const socketId = this._context.getSocketId();
 
 		if (!socketId) throw new Error("No socketId specified");
 
-		await EventsModule.subscribeManySocket(channels, socketId);
+		await EventsModule.subscribeManySocket(
+			this._payload.channels,
+			socketId
+		);
 	}
 }

+ 2 - 2
backend/src/modules/EventsModule/jobs/Unsubscribe.ts

@@ -20,11 +20,11 @@ export default class Unsubscribe extends Job {
 
 	protected override async _authorize() {}
 
-	protected async _execute({ channel }: { channel: string }) {
+	protected async _execute() {
 		const socketId = this._context.getSocketId();
 
 		if (!socketId) throw new Error("No socketId specified");
 
-		await EventsModule.unsubscribeSocket(channel, socketId);
+		await EventsModule.unsubscribeSocket(this._payload.channel, socketId);
 	}
 }

+ 5 - 2
backend/src/modules/EventsModule/jobs/UnsubscribeMany.ts

@@ -25,11 +25,14 @@ export default class UnsubscribeMany extends Job {
 
 	protected override async _authorize() {}
 
-	protected async _execute({ channels }: { channels: string[] }) {
+	protected async _execute() {
 		const socketId = this._context.getSocketId();
 
 		if (!socketId) throw new Error("No socketId specified");
 
-		await EventsModule.unsubscribeManySocket(channels, socketId);
+		await EventsModule.unsubscribeManySocket(
+			this._payload.channels,
+			socketId
+		);
 	}
 }