Browse Source

fix(core): Prevent max integer error in job duration

Fixes #755
Michael Bromley 4 years ago
parent
commit
305727eca5

+ 2 - 0
packages/core/src/api/api-internal-modules.ts

@@ -47,6 +47,7 @@ import {
     FulfillmentAdminEntityResolver,
     FulfillmentEntityResolver,
 } from './resolvers/entity/fulfillment-entity.resolver';
+import { JobEntityResolver } from './resolvers/entity/job-entity.resolver';
 import { OrderAdminEntityResolver, OrderEntityResolver } from './resolvers/entity/order-entity.resolver';
 import { OrderLineEntityResolver } from './resolvers/entity/order-line-entity.resolver';
 import {
@@ -139,6 +140,7 @@ export const adminEntityResolvers = [
     PaymentAdminEntityResolver,
     ProductVariantAdminEntityResolver,
     ProductAdminEntityResolver,
+    JobEntityResolver,
 ];
 
 /**

+ 13 - 0
packages/core/src/api/resolvers/entity/job-entity.resolver.ts

@@ -0,0 +1,13 @@
+import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
+
+import { Job } from '../../../job-queue/job';
+
+@Resolver('Job')
+export class JobEntityResolver {
+    private readonly graphQlMaxInt = 2 ** 31 - 1;
+
+    @ResolveField()
+    async duration(@Parent() job: Job) {
+        return Math.min(job.duration, this.graphQlMaxInt);
+    }
+}