1- import { type RuntimeEnvironmentType } from "@trigger.dev/core/v3" ;
1+ import { logger , type RuntimeEnvironmentType } from "@trigger.dev/core/v3" ;
22import { type RunEngineVersion } from "@trigger.dev/database" ;
33import { ServiceValidationError } from "~/v3/services/baseService.server" ;
44import { BasePresenter } from "./basePresenter.server" ;
55import { WaitpointPresenter } from "./WaitpointPresenter.server" ;
6+ import { waitpointStatusToApiStatus } from "./WaitpointTokenListPresenter.server" ;
67
78export class ApiWaitpointPresenter extends BasePresenter {
89 public async call (
@@ -17,30 +18,63 @@ export class ApiWaitpointPresenter extends BasePresenter {
1718 waitpointId : string
1819 ) {
1920 return this . trace ( "call" , async ( span ) => {
20- const presenter = new WaitpointPresenter ( ) ;
21- const result = await presenter . call ( {
22- friendlyId : waitpointId ,
23- environmentId : environment . id ,
24- projectId : environment . project . id ,
21+ const waitpoint = await this . _replica . waitpoint . findFirst ( {
22+ where : {
23+ id : waitpointId ,
24+ environmentId : environment . id ,
25+ } ,
26+ select : {
27+ friendlyId : true ,
28+ type : true ,
29+ status : true ,
30+ idempotencyKey : true ,
31+ userProvidedIdempotencyKey : true ,
32+ idempotencyKeyExpiresAt : true ,
33+ inactiveIdempotencyKey : true ,
34+ output : true ,
35+ outputType : true ,
36+ outputIsError : true ,
37+ completedAfter : true ,
38+ completedAt : true ,
39+ createdAt : true ,
40+ connectedRuns : {
41+ select : {
42+ friendlyId : true ,
43+ } ,
44+ take : 5 ,
45+ } ,
46+ tags : true ,
47+ } ,
2548 } ) ;
2649
27- if ( ! result ) {
50+ if ( ! waitpoint ) {
51+ logger . error ( `WaitpointPresenter: Waitpoint not found` , {
52+ id : waitpointId ,
53+ } ) ;
2854 throw new ServiceValidationError ( "Waitpoint not found" ) ;
2955 }
3056
57+ let isTimeout = false ;
58+ if ( waitpoint . outputIsError && waitpoint . output ) {
59+ isTimeout = true ;
60+ }
61+
3162 return {
32- id : result . id ,
33- status : result . status ,
34- completedAt : result . completedAt ?? undefined ,
35- timeoutAt : result . timeoutAt ?? undefined ,
36- completedAfter : result . completedAfter ?? undefined ,
37- idempotencyKey : result . userProvidedIdempotencyKey ? result . idempotencyKey : undefined ,
38- idempotencyKeyExpiresAt : result . idempotencyKeyExpiresAt ?? undefined ,
39- tags : result . tags ?? [ ] ,
40- createdAt : result . createdAt ,
41- output : result . output ,
42- outputType : result . outputType ,
43- outputIsError : result . outputIsError ,
63+ id : waitpoint . friendlyId ,
64+ type : waitpoint . type ,
65+ status : waitpointStatusToApiStatus ( waitpoint . status , waitpoint . outputIsError ) ,
66+ idempotencyKey : waitpoint . idempotencyKey ,
67+ userProvidedIdempotencyKey : waitpoint . userProvidedIdempotencyKey ,
68+ idempotencyKeyExpiresAt : waitpoint . idempotencyKeyExpiresAt ?? undefined ,
69+ inactiveIdempotencyKey : waitpoint . inactiveIdempotencyKey ?? undefined ,
70+ output : waitpoint . output ?? undefined ,
71+ outputType : waitpoint . outputType ,
72+ outputIsError : waitpoint . outputIsError ,
73+ timeoutAt : waitpoint . completedAfter ?? undefined ,
74+ completedAfter : waitpoint . completedAfter ?? undefined ,
75+ completedAt : waitpoint . completedAt ?? undefined ,
76+ createdAt : waitpoint . createdAt ,
77+ tags : waitpoint . tags ,
4478 } ;
4579 } ) ;
4680 }
0 commit comments