Skip to content

Commit c251f2f

Browse files
Boris Dorofeevnodkz
authored andcommitted
feat: add remove bulk mutation
1 parent 5750e0d commit c251f2f

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

src/composeBull.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
createJobDiscardFC,
1717
createjobPromoteFC,
1818
createJobRremoveFC,
19+
createJobRremoveBulkFC,
1920
createJobRetryFC,
2021
createJobUpdateFC,
2122
createJobLogAddFC,
@@ -52,6 +53,7 @@ export function composeBull(opts: Options & { schemaComposer?: SchemaComposer<an
5253
jobDiscard: wrapMutation(createJobDiscardFC),
5354
jobPromote: wrapMutation(createjobPromoteFC),
5455
jobRemove: wrapMutation(createJobRremoveFC),
56+
jobRemoveBulk: wrapMutation(createJobRremoveBulkFC),
5557
jobRetry: wrapMutation(createJobRetryFC),
5658
jobUpdate: wrapMutation(createJobUpdateFC),
5759
jobLogAdd: wrapMutation(createJobLogAddFC),

src/mutation/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export { createJobAddEveryFC } from './jobAddEvery';
1111
export { createJobDiscardFC } from './jobDiscard';
1212
export { createjobPromoteFC } from './jobPromote';
1313
export { createJobRremoveFC } from './jobRemove';
14+
export { createJobRremoveBulkFC } from './jobRemoveBulk';
1415
export { createJobRetryFC } from './jobRetry';
1516
export { createJobUpdateFC } from './jobUpdate';
1617
export { createJobLogAddFC } from './jobLogAdd';

src/mutation/jobRemoveBulk.ts

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import { findQueue } from '../helpers';
2+
import { SchemaComposer, ObjectTypeComposerFieldConfigAsObjectDefinition } from 'graphql-compose';
3+
import { Options } from '../definitions';
4+
5+
export function createJobRremoveBulkFC(
6+
sc: SchemaComposer<any>,
7+
opts: Options
8+
): ObjectTypeComposerFieldConfigAsObjectDefinition<any, any> {
9+
const { typePrefix } = opts;
10+
11+
return {
12+
type: sc.createObjectTC({
13+
name: `${typePrefix}JobRemoveBulkPayload`,
14+
fields: {
15+
jobIds: '[String!]',
16+
},
17+
}),
18+
args: {
19+
prefix: {
20+
type: 'String!',
21+
defaultValue: 'bull',
22+
},
23+
queueName: 'String!',
24+
jobIds: '[String!]!',
25+
},
26+
resolve: async (_, { prefix, queueName, jobIds }) => {
27+
const queue = await findQueue(prefix, queueName, opts);
28+
const deletedIds: string[] = [];
29+
for (let i = 0; i < jobIds.length; i++) {
30+
const job = await queue.getJob(jobIds[i]);
31+
if (job) {
32+
await job.remove();
33+
deletedIds.push(jobIds[i]);
34+
}
35+
}
36+
37+
return {
38+
jobIds: deletedIds,
39+
};
40+
},
41+
};
42+
}

0 commit comments

Comments
 (0)