11import { getQueue } from './helpers/wrapMutationFC' ;
2- import {
3- SchemaComposer ,
4- InputTypeComposer ,
5- ObjectTypeComposerFieldConfigAsObjectDefinition ,
6- } from 'graphql-compose' ;
2+ import { SchemaComposer , ObjectTypeComposerFieldConfigAsObjectDefinition } from 'graphql-compose' ;
73import { getJobTC } from '../types/job/Job' ;
84
9- function getPayloadTC ( sc : SchemaComposer < any > ) {
10- return sc . getOrCreateOTC ( 'JobAddPayload' , ( etc ) => {
11- etc . addFields ( {
12- job : getJobTC ( sc ) ,
13- } ) ;
14- } ) ;
15- }
16-
17- export function createJobAddFC ( sc : SchemaComposer < any > ) {
18- return composeJobAddFC ( sc , createJobOptionsInputTC ( 'JobOptionsInput' , sc ) ) ;
19- }
20-
21- export function createJobAddRepeatableCronFC ( sc : SchemaComposer < any > ) {
22- return composeJobAddFC (
23- sc ,
24- createJobOptionsInputTC ( 'JobOptionsInputRepeatableCron' , sc ) . addFields ( {
25- repeat : sc
26- . createInputTC ( {
27- name : 'RepeatOptionsInputCron' ,
28- fields : {
29- tz : 'String' ,
30- endDate : 'Date' ,
31- limit : 'Int' ,
32- cron : 'String!' ,
33- startDate : 'Date' ,
34- } ,
35- } )
36- . getTypeNonNull ( ) ,
37- } )
38- ) ;
39- }
40-
41- export function createJobAddRepeatableEveryFC ( sc : SchemaComposer < any > ) {
42- return composeJobAddFC (
43- sc ,
44- createJobOptionsInputTC ( 'JobOptionsInputRepeatableEvery' , sc ) . addFields ( {
45- repeat : sc
46- . createInputTC ( {
47- name : 'RepeatOptionsInputEvery' ,
48- fields : {
49- tz : 'String' ,
50- endDate : 'Date' ,
51- limit : 'Int' ,
52- cron : 'String!' ,
53- startDate : 'Date' ,
54- } ,
55- } )
56- . getTypeNonNull ( ) ,
57- } )
58- ) ;
59- }
60-
61- function composeJobAddFC (
62- sc : SchemaComposer < any > ,
63- optionsTC : InputTypeComposer < any >
5+ export function createJobAddFC (
6+ sc : SchemaComposer < any >
647) : ObjectTypeComposerFieldConfigAsObjectDefinition < any , any > {
658 return {
66- type : getPayloadTC ( sc ) ,
9+ type : sc . createObjectTC ( {
10+ name : 'JobAddPayload' ,
11+ fields : {
12+ job : getJobTC ( sc ) ,
13+ } ,
14+ } ) ,
6715 args : {
6816 queueName : 'String!' ,
6917 jobName : 'String!' ,
7018 data : 'JSON!' ,
71- options : optionsTC ,
19+ options : sc . createInputTC ( {
20+ name : 'JobOptionsInput' ,
21+ fields : {
22+ priority : 'Int' ,
23+ delay : 'Int' ,
24+ attempts : 'Int' ,
25+ backoff : 'Int' , // | TODO: BackoffOptions
26+ lifo : 'Boolean' ,
27+ timeout : 'Int' ,
28+ jobId : 'String' ,
29+ removeOnComplete : 'Boolean' , //TODO: bool or int
30+ removeOnFail : 'Boolean' , //TODO: bool or int
31+ stackTraceLimit : 'Int' ,
32+ } ,
33+ } ) ,
7234 } ,
7335 resolve : async ( _ , { queueName, jobName, data, options } , context ) => {
7436 const queue = getQueue ( queueName , context ) ;
@@ -79,21 +41,3 @@ function composeJobAddFC(
7941 } ,
8042 } ;
8143}
82-
83- function createJobOptionsInputTC ( name : string , sc : SchemaComposer < any > ) : InputTypeComposer < any > {
84- return sc . createInputTC ( {
85- name,
86- fields : {
87- priority : 'Int' ,
88- delay : 'Int' ,
89- attempts : 'Int' ,
90- backoff : 'Int' , // | TODO: BackoffOptions
91- lifo : 'Boolean' ,
92- timeout : 'Int' ,
93- jobId : 'String' ,
94- removeOnComplete : 'Boolean' , //TODO: bool or int
95- removeOnFail : 'Boolean' , //TODO: bool or int
96- stackTraceLimit : 'Int' ,
97- } ,
98- } ) ;
99- }
0 commit comments