1- import type { EventDispatcher , EventRecord } from "@trigger.dev/database" ;
2- import type { EventFilter } from "@trigger.dev/core" ;
3- import { EventFilterSchema , eventFilterMatches } from "@trigger.dev/core" ;
1+ import type { EventRecord } from "@trigger.dev/database" ;
42import { $transaction , PrismaClientOrTransaction , prisma } from "~/db.server" ;
5- import { logger } from "~/services/logger.server" ;
63import { workerQueue } from "../worker.server" ;
74import { AuthenticatedEnvironment } from "../apiAuth.server" ;
85
@@ -13,17 +10,21 @@ export class CancelEventService {
1310 this . #prismaClient = prismaClient ;
1411 }
1512
16- public async call ( environment : AuthenticatedEnvironment , eventId : string ) : Promise < EventRecord | undefined > {
13+ public async call (
14+ environment : AuthenticatedEnvironment ,
15+ eventId : string
16+ ) : Promise < EventRecord | undefined > {
1717 return await $transaction (
1818 this . #prismaClient,
1919 async ( tx ) => {
20- const event = await tx . eventRecord . findFirst ( {
20+ const event = await tx . eventRecord . findUnique ( {
2121 select : {
2222 id : true ,
2323 name : true ,
2424 createdAt : true ,
2525 updatedAt : true ,
2626 environmentId : true ,
27+ cancelledAt : true ,
2728 runs : {
2829 select : {
2930 id : true ,
@@ -34,23 +35,29 @@ export class CancelEventService {
3435 } ,
3536 } ,
3637 where : {
37- id : eventId ,
38- environmentId : environment . id ,
38+ eventId_environmentId : {
39+ eventId : eventId ,
40+ environmentId : environment . id ,
41+ } ,
3942 } ,
4043 } ) ;
4144
4245 if ( ! event ) {
4346 return ;
4447 }
4548
49+ if ( event . cancelledAt ) {
50+ return event ;
51+ }
52+
4653 //update the cancelledAt column in the eventRecord table
4754 const updatedEvent = await prisma . eventRecord . update ( {
4855 where : { id : event . id } ,
4956 data : { cancelledAt : new Date ( ) } ,
5057 } ) ;
5158
5259 // Dequeue the event after the db has been updated
53- await workerQueue . dequeue ( event . id , { tx : prisma } ) ;
60+ await workerQueue . dequeue ( ` event: ${ event . id } ` , { tx : prisma } ) ;
5461
5562 return updatedEvent ;
5663 } ,
0 commit comments