Skip to content

Commit 297a8d0

Browse files
committed
wip: refactoring after review
1 parent 9f46882 commit 297a8d0

File tree

7 files changed

+35
-35
lines changed

7 files changed

+35
-35
lines changed

example/src/schema/types/enums.ts

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { SchemaComposer } from 'graphql-compose';
2+
13
export enum JobStatusEnum {
24
COMPLETED = 'completed',
35
WAITING = 'waiting',
@@ -18,39 +20,34 @@ export enum ErrorCodeEnum {
1820
OTHER_ERROR = 'other_error',
1921
}
2022

21-
export function createEnumsTC({ schemaComposer }) {
22-
const JobStatusEnumTC = schemaComposer.createEnumTC({
23-
name: 'JobStatusEnum',
24-
values: {
23+
export function getJobStatusEnumTC(sc: SchemaComposer<any>) {
24+
return sc.getOrCreateETC('JobStatusEnum', (etc) => {
25+
etc.addFields({
2526
COMPLETED: { value: JobStatusEnum.COMPLETED },
2627
WAITING: { value: JobStatusEnum.WAITING },
2728
ACTIVE: { value: JobStatusEnum.ACTIVE },
2829
DELAYED: { value: JobStatusEnum.DELAYED },
2930
FAILED: { value: JobStatusEnum.FAILED },
3031
PAUSED: { value: JobStatusEnum.PAUSED }, //TODO: в bull написано что устарело, теперь все waiting
31-
},
32+
});
3233
});
34+
}
3335

34-
const PayloadStatusEnumTC = schemaComposer.createEnumTC({
35-
name: 'PayloadStatusEnum',
36-
values: {
36+
export function getMutationStatusEnumTC(sc: SchemaComposer<any>) {
37+
return sc.getOrCreateETC('MutationStatusEnum', (etc) => {
38+
etc.addFields({
3739
OK: { value: PayloadStatusEnum.OK },
3840
ERROR: { value: PayloadStatusEnum.ERROR },
39-
},
41+
});
4042
});
43+
}
4144

42-
const ErrorCodeEnumTC = schemaComposer.createEnumTC({
43-
name: 'ErrorCodeEnum',
44-
values: {
45+
export function getMutationErrorCodeEnumTC(sc: SchemaComposer<any>) {
46+
return sc.getOrCreateETC('MutationErrorCodeEnum', (etc) => {
47+
etc.addFields({
4548
QUEUE_NOT_FOUND: { value: ErrorCodeEnum.QUEUE_NOT_FOUND },
4649
JOB_NOT_FOUND: { value: ErrorCodeEnum.JOB_NOT_FOUND },
4750
OTHER_ERROR: { value: ErrorCodeEnum.OTHER_ERROR },
48-
},
51+
});
4952
});
50-
51-
return {
52-
JobStatusEnumTC,
53-
PayloadStatusEnumTC,
54-
ErrorCodeEnumTC,
55-
};
5653
}

example/src/schema/types/index.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
1-
import { createEnumsTC } from './enums';
21
import { createInputTypes } from './input';
32
import { createQueueTC } from './queue';
43
import { createJobTC } from './job';
54

65
export default function ({ schemaComposer }) {
7-
const { JobStatusEnumTC, PayloadStatusEnumTC, ErrorCodeEnumTC } = createEnumsTC({
8-
schemaComposer,
9-
});
10-
11-
const JobTC = createJobTC(schemaComposer, { JobStatusEnumTC });
12-
13-
const QueueTC = createQueueTC(schemaComposer, { JobTC, JobStatusEnumTC });
6+
const JobTC = createJobTC(schemaComposer);
7+
const QueueTC = createQueueTC(schemaComposer, { JobTC });
148

159
const { JobOptionsInputTC } = createInputTypes(schemaComposer);
1610

example/src/schema/types/job/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { createLogsFC } from './logs';
22
import { createStateFC } from './state';
33
import { createRepeatOptionsTC } from './repeatOptionsUnion';
4+
import { SchemaComposer } from 'graphql-compose';
45

5-
export function createJobTC(schemaComposer, { JobStatusEnumTC }) {
6+
export function createJobTC(schemaComposer: SchemaComposer<any>) {
67
return schemaComposer.createObjectTC({
78
name: 'Job',
89
fields: {
@@ -34,7 +35,7 @@ export function createJobTC(schemaComposer, { JobStatusEnumTC }) {
3435
stackTraceLimit: 'Int',
3536
},
3637
}),
37-
state: createStateFC({ JobStatusEnumTC }),
38+
state: createStateFC(schemaComposer),
3839
logs: createLogsFC(schemaComposer),
3940
},
4041
});

example/src/schema/types/job/logs.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { Job } from 'bullmq';
2+
13
export function createLogsFC(schemaComposer) {
24
return {
35
type: schemaComposer.createObjectTC({

example/src/schema/types/job/state.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import { Job } from 'bullmq';
2+
import { SchemaComposer } from 'graphql-compose';
3+
import { getJobStatusEnumTC } from '../enums';
24

3-
export function createStateFC({ JobStatusEnumTC }) {
5+
export function createStateFC(schemaComposer: SchemaComposer<any>) {
46
return {
5-
type: JobStatusEnumTC,
7+
type: getJobStatusEnumTC(schemaComposer),
68
resolve: async (job: Job) => {
79
return await job.getState();
810
},

example/src/schema/types/queue/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ import { createCompletedJobsFC } from './completedJobs';
66
import { createActiveJobsFC } from './activeJobs';
77
import { createDelayedJobsFC } from './delayedJobs';
88
import { createFailedJobsFC } from './failedJobs';
9+
import { SchemaComposer } from 'graphql-compose';
910

10-
export function createQueueTC(schemaComposer, { JobTC, JobStatusEnumTC }) {
11+
export function createQueueTC(schemaComposer: SchemaComposer<any>, { JobTC }) {
1112
return schemaComposer.createObjectTC({
1213
name: 'Queue',
1314
description: 'Bull queue',
@@ -17,7 +18,7 @@ export function createQueueTC(schemaComposer, { JobTC, JobStatusEnumTC }) {
1718
jobNames: '[String!]',
1819
jobCounts: createJobCountFC(schemaComposer),
1920
repeatables: createRepeatablesFC(schemaComposer),
20-
jobs: createJobsFC({ JobTC, JobStatusEnumTC }),
21+
jobs: createJobsFC({ JobTC }),
2122
waitingJobs: createWaitingJobsFC({ JobTC }),
2223
completedJobs: createCompletedJobsFC({ JobTC }),
2324
activeJobs: createActiveJobsFC({ JobTC }),

example/src/schema/types/queue/jobs.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import { Queue } from 'bullmq';
2+
import { SchemaComposer } from 'graphql-compose';
3+
import { getJobStatusEnumTC } from '../enums';
24

3-
export function createJobsFC({ JobTC, JobStatusEnumTC }) {
5+
export function createJobsFC(schemaComposer: SchemaComposer<any>, { JobTC }) {
46
return {
57
type: [JobTC],
68
args: {
7-
status: JobStatusEnumTC,
9+
status: getJobStatusEnumTC(schemaComposer),
810
start: {
911
type: 'Int',
1012
defaultValue: 0,
@@ -13,6 +15,7 @@ export function createJobsFC({ JobTC, JobStatusEnumTC }) {
1315
type: 'Int',
1416
defaultValue: -1,
1517
},
18+
// TODO: add sorting
1619
},
1720
resolve: async (queue: Queue, { status, start, end }) => {
1821
return await queue.getJobs([status], start, end, false);

0 commit comments

Comments
 (0)