|
@@ -1,4 +1,5 @@
|
|
import { PipelineStage, Schema, SchemaOptions } from "mongoose";
|
|
import { PipelineStage, Schema, SchemaOptions } from "mongoose";
|
|
|
|
+import JobContext from "../../JobContext";
|
|
|
|
|
|
export enum FilterType {
|
|
export enum FilterType {
|
|
REGEX = "regex",
|
|
REGEX = "regex",
|
|
@@ -28,20 +29,23 @@ export interface GetDataSchemaOptions extends SchemaOptions {
|
|
}
|
|
}
|
|
|
|
|
|
export interface GetData {
|
|
export interface GetData {
|
|
- getData(payload: {
|
|
+ getData(
|
|
- page: number;
|
|
+ context: JobContext,
|
|
- pageSize: number;
|
|
+ payload: {
|
|
- properties: string[];
|
|
+ page: number;
|
|
- sort: Record<string, "ascending" | "descending">;
|
|
+ pageSize: number;
|
|
- queries: {
|
|
+ properties: string[];
|
|
- data: any;
|
|
+ sort: Record<string, "ascending" | "descending">;
|
|
- filter: {
|
|
+ queries: {
|
|
- property: string;
|
|
+ data: any;
|
|
- };
|
|
+ filter: {
|
|
- filterType: FilterType;
|
|
+ property: string;
|
|
- }[];
|
|
+ };
|
|
- operator: "and" | "or" | "nor";
|
|
+ filterType: FilterType;
|
|
- }): Promise<{
|
|
+ }[];
|
|
|
|
+ operator: "and" | "or" | "nor";
|
|
|
|
+ }
|
|
|
|
+ ): Promise<{
|
|
data: any[];
|
|
data: any[];
|
|
count: number;
|
|
count: number;
|
|
}>;
|
|
}>;
|
|
@@ -51,6 +55,7 @@ export default function getDataPlugin(schema: Schema) {
|
|
schema.static(
|
|
schema.static(
|
|
"getData",
|
|
"getData",
|
|
async function getData(
|
|
async function getData(
|
|
|
|
+ context: JobContext,
|
|
payload: Parameters<GetData["getData"]>[0]
|
|
payload: Parameters<GetData["getData"]>[0]
|
|
): ReturnType<GetData["getData"]> {
|
|
): ReturnType<GetData["getData"]> {
|
|
const { page, pageSize, properties, sort, queries, operator } =
|
|
const { page, pageSize, properties, sort, queries, operator } =
|