Skip to content

Commit 1c09fbe

Browse files
committed
Made the existing waitpoint list presenter more flexible
1 parent 79e98c1 commit 1c09fbe

File tree

6 files changed

+32
-30
lines changed

6 files changed

+32
-30
lines changed

apps/webapp/app/presenters/v3/ApiWaitpointTokenListPresenter.server.ts renamed to apps/webapp/app/presenters/v3/ApiWaitpointListPresenter.server.ts

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
1-
import { RuntimeEnvironmentType, WaitpointTokenStatus } from "@trigger.dev/core/v3";
1+
import { type RuntimeEnvironmentType, WaitpointTokenStatus } from "@trigger.dev/core/v3";
2+
import { type RunEngineVersion, type WaitpointResolver } from "@trigger.dev/database";
23
import { z } from "zod";
3-
import { BasePresenter } from "./basePresenter.server";
44
import { CoercedDate } from "~/utils/zod";
5-
import { AuthenticatedEnvironment } from "@internal/run-engine";
6-
import {
7-
WaitpointTokenListOptions,
8-
WaitpointTokenListPresenter,
9-
} from "./WaitpointTokenListPresenter.server";
105
import { ServiceValidationError } from "~/v3/services/baseService.server";
11-
import { RunEngineVersion } from "@trigger.dev/database";
6+
import { BasePresenter } from "./basePresenter.server";
7+
import { type WaitpointListOptions, WaitpointListPresenter } from "./WaitpointListPresenter.server";
128

13-
export const ApiWaitpointTokenListSearchParams = z.object({
9+
export const ApiWaitpointListSearchParams = z.object({
1410
"page[size]": z.coerce.number().int().positive().min(1).max(100).optional(),
1511
"page[after]": z.string().optional(),
1612
"page[before]": z.string().optional(),
@@ -61,9 +57,9 @@ export const ApiWaitpointTokenListSearchParams = z.object({
6157
"filter[createdAt][to]": CoercedDate,
6258
});
6359

64-
type ApiWaitpointTokenListSearchParams = z.infer<typeof ApiWaitpointTokenListSearchParams>;
60+
type ApiWaitpointListSearchParams = z.infer<typeof ApiWaitpointListSearchParams>;
6561

66-
export class ApiWaitpointTokenListPresenter extends BasePresenter {
62+
export class ApiWaitpointListPresenter extends BasePresenter {
6763
public async call(
6864
environment: {
6965
id: string;
@@ -73,11 +69,13 @@ export class ApiWaitpointTokenListPresenter extends BasePresenter {
7369
engine: RunEngineVersion;
7470
};
7571
},
76-
searchParams: ApiWaitpointTokenListSearchParams
72+
resolver: WaitpointResolver,
73+
searchParams: ApiWaitpointListSearchParams
7774
) {
7875
return this.trace("call", async (span) => {
79-
const options: WaitpointTokenListOptions = {
76+
const options: WaitpointListOptions = {
8077
environment,
78+
resolver,
8179
};
8280

8381
if (searchParams["page[size]"]) {
@@ -118,7 +116,7 @@ export class ApiWaitpointTokenListPresenter extends BasePresenter {
118116
options.to = searchParams["filter[createdAt][to]"].getTime();
119117
}
120118

121-
const presenter = new WaitpointTokenListPresenter();
119+
const presenter = new WaitpointListPresenter();
122120
const result = await presenter.call(options);
123121

124122
if (!result.success) {

apps/webapp/app/presenters/v3/ApiWaitpointPresenter.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { type RunEngineVersion } from "@trigger.dev/database";
33
import { ServiceValidationError } from "~/v3/services/baseService.server";
44
import { BasePresenter } from "./basePresenter.server";
55
import { WaitpointPresenter } from "./WaitpointPresenter.server";
6-
import { waitpointStatusToApiStatus } from "./WaitpointTokenListPresenter.server";
6+
import { waitpointStatusToApiStatus } from "./WaitpointListPresenter.server";
77

88
export class ApiWaitpointPresenter extends BasePresenter {
99
public async call(

apps/webapp/app/presenters/v3/WaitpointTokenListPresenter.server.ts renamed to apps/webapp/app/presenters/v3/WaitpointListPresenter.server.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import parse from "parse-duration";
22
import {
33
Prisma,
4+
type WaitpointResolver,
45
type RunEngineVersion,
56
type RuntimeEnvironmentType,
67
type WaitpointStatus,
@@ -14,7 +15,7 @@ import { type WaitpointTokenStatus, type WaitpointTokenItem } from "@trigger.dev
1415

1516
const DEFAULT_PAGE_SIZE = 25;
1617

17-
export type WaitpointTokenListOptions = {
18+
export type WaitpointListOptions = {
1819
environment: {
1920
id: string;
2021
type: RuntimeEnvironmentType;
@@ -23,6 +24,7 @@ export type WaitpointTokenListOptions = {
2324
engine: RunEngineVersion;
2425
};
2526
};
27+
resolver: WaitpointResolver;
2628
// filters
2729
id?: string;
2830
statuses?: WaitpointTokenStatus[];
@@ -63,9 +65,10 @@ type Result =
6365
filters: undefined;
6466
};
6567

66-
export class WaitpointTokenListPresenter extends BasePresenter {
68+
export class WaitpointListPresenter extends BasePresenter {
6769
public async call({
6870
environment,
71+
resolver,
6972
id,
7073
statuses,
7174
idempotencyKey,
@@ -76,7 +79,7 @@ export class WaitpointTokenListPresenter extends BasePresenter {
7679
direction = "forward",
7780
cursor,
7881
pageSize = DEFAULT_PAGE_SIZE,
79-
}: WaitpointTokenListOptions): Promise<Result> {
82+
}: WaitpointListOptions): Promise<Result> {
8083
const engineVersion = await determineEngineVersion({ environment });
8184
if (engineVersion === "V1") {
8285
return {
@@ -165,7 +168,7 @@ export class WaitpointTokenListPresenter extends BasePresenter {
165168
${sqlDatabaseSchema}."Waitpoint" w
166169
WHERE
167170
w."environmentId" = ${environment.id}
168-
AND w.resolver = 'TOKEN'
171+
AND w.resolver = ${resolver}::"WaitpointResolver"
169172
-- cursor
170173
${
171174
cursor
@@ -250,7 +253,7 @@ export class WaitpointTokenListPresenter extends BasePresenter {
250253
const firstToken = await this._replica.waitpoint.findFirst({
251254
where: {
252255
environmentId: environment.id,
253-
resolver: "TOKEN",
256+
resolver,
254257
},
255258
});
256259

apps/webapp/app/presenters/v3/WaitpointPresenter.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { isWaitpointOutputTimeout, prettyPrintPacket } from "@trigger.dev/core/v
22
import { logger } from "~/services/logger.server";
33
import { BasePresenter } from "./basePresenter.server";
44
import { type RunListItem, RunListPresenter } from "./RunListPresenter.server";
5-
import { waitpointStatusToApiStatus } from "./WaitpointTokenListPresenter.server";
5+
import { waitpointStatusToApiStatus } from "./WaitpointListPresenter.server";
66

77
export type WaitpointDetail = NonNullable<Awaited<ReturnType<WaitpointPresenter["call"]>>>;
88

apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.waitpoints.tokens/route.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import { useOrganization } from "~/hooks/useOrganizations";
3636
import { useProject } from "~/hooks/useProject";
3737
import { findProjectBySlug } from "~/models/project.server";
3838
import { findEnvironmentBySlug } from "~/models/runtimeEnvironment.server";
39-
import { WaitpointTokenListPresenter } from "~/presenters/v3/WaitpointTokenListPresenter.server";
39+
import { WaitpointListPresenter } from "~/presenters/v3/WaitpointListPresenter.server";
4040
import { requireUserId } from "~/services/session.server";
4141
import { docsPath, EnvironmentParamSchema, v3WaitpointTokenPath } from "~/utils/pathBuilder";
4242

@@ -84,9 +84,10 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => {
8484
}
8585

8686
try {
87-
const presenter = new WaitpointTokenListPresenter();
87+
const presenter = new WaitpointListPresenter();
8888
const result = await presenter.call({
8989
environment,
90+
resolver: "TOKEN",
9091
...searchParams,
9192
});
9293

apps/webapp/app/routes/api.v1.waitpoints.tokens.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,27 @@ import {
66
import { WaitpointId } from "@trigger.dev/core/v3/isomorphic";
77
import { createWaitpointTag, MAX_TAGS_PER_WAITPOINT } from "~/models/waitpointTag.server";
88
import {
9-
ApiWaitpointTokenListPresenter,
10-
ApiWaitpointTokenListSearchParams,
11-
} from "~/presenters/v3/ApiWaitpointTokenListPresenter.server";
9+
ApiWaitpointListPresenter,
10+
ApiWaitpointListSearchParams,
11+
} from "~/presenters/v3/ApiWaitpointListPresenter.server";
12+
import { type AuthenticatedEnvironment } from "~/services/apiAuth.server";
1213
import {
1314
createActionApiRoute,
1415
createLoaderApiRoute,
1516
} from "~/services/routeBuilders/apiBuilder.server";
16-
import { AuthenticatedEnvironment } from "~/services/apiAuth.server";
1717
import { parseDelay } from "~/utils/delays";
1818
import { resolveIdempotencyKeyTTL } from "~/utils/idempotencyKeys.server";
1919
import { engine } from "~/v3/runEngine.server";
2020
import { ServiceValidationError } from "~/v3/services/baseService.server";
2121

2222
export const loader = createLoaderApiRoute(
2323
{
24-
searchParams: ApiWaitpointTokenListSearchParams,
24+
searchParams: ApiWaitpointListSearchParams,
2525
findResource: async () => 1, // This is a dummy function, we don't need to find a resource
2626
},
2727
async ({ searchParams, authentication }) => {
28-
const presenter = new ApiWaitpointTokenListPresenter();
29-
const result = await presenter.call(authentication.environment, searchParams);
28+
const presenter = new ApiWaitpointListPresenter();
29+
const result = await presenter.call(authentication.environment, "TOKEN", searchParams);
3030

3131
return json(result);
3232
}

0 commit comments

Comments
 (0)