chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
import { stringifyIO } from "@trigger.dev/core/v3";
|
||||
import { type AuthenticatedEnvironment } from "~/services/apiAuth.server";
|
||||
import { type TestTaskData } from "../testTask";
|
||||
import { BaseService } from "./baseService.server";
|
||||
import { TriggerTaskService } from "./triggerTask.server";
|
||||
|
||||
export class TestTaskService extends BaseService {
|
||||
public async call(environment: AuthenticatedEnvironment, data: TestTaskData) {
|
||||
const triggerTaskService = new TriggerTaskService();
|
||||
const { triggerSource } = data;
|
||||
|
||||
switch (triggerSource) {
|
||||
case "STANDARD": {
|
||||
const result = await triggerTaskService.call(
|
||||
data.taskIdentifier,
|
||||
environment,
|
||||
{
|
||||
payload: data.payload,
|
||||
options: {
|
||||
test: true,
|
||||
metadata: data.metadata,
|
||||
delay: data.delaySeconds
|
||||
? new Date(Date.now() + data.delaySeconds * 1000)
|
||||
: undefined,
|
||||
ttl: data.ttlSeconds,
|
||||
idempotencyKey: data.idempotencyKey,
|
||||
idempotencyKeyTTL: data.idempotencyKeyTTLSeconds
|
||||
? `${data.idempotencyKeyTTLSeconds}s`
|
||||
: undefined,
|
||||
queue: data.queue ? { name: data.queue } : undefined,
|
||||
concurrencyKey: data.concurrencyKey,
|
||||
maxAttempts: data.maxAttempts,
|
||||
maxDuration: data.maxDurationSeconds,
|
||||
tags: data.tags,
|
||||
machine: data.machine,
|
||||
region: data.region,
|
||||
lockToVersion: data.version === "latest" ? undefined : data.version,
|
||||
priority: data.prioritySeconds,
|
||||
},
|
||||
},
|
||||
{ triggerSource: "dashboard", triggerAction: "test" }
|
||||
);
|
||||
|
||||
return result?.run;
|
||||
}
|
||||
case "SCHEDULED": {
|
||||
const payload = {
|
||||
scheduleId: "sched_1234",
|
||||
type: "IMPERATIVE",
|
||||
timestamp: data.timestamp,
|
||||
lastTimestamp: data.lastTimestamp,
|
||||
timezone: data.timezone,
|
||||
externalId: data.externalId,
|
||||
upcoming: [],
|
||||
};
|
||||
const payloadPacket = await stringifyIO(payload);
|
||||
|
||||
const result = await triggerTaskService.call(
|
||||
data.taskIdentifier,
|
||||
environment,
|
||||
{
|
||||
payload: payloadPacket.data,
|
||||
options: {
|
||||
payloadType: payloadPacket.dataType,
|
||||
test: true,
|
||||
ttl: data.ttlSeconds,
|
||||
idempotencyKey: data.idempotencyKey,
|
||||
idempotencyKeyTTL: data.idempotencyKeyTTLSeconds
|
||||
? `${data.idempotencyKeyTTLSeconds}s`
|
||||
: undefined,
|
||||
queue: data.queue ? { name: data.queue } : undefined,
|
||||
concurrencyKey: data.concurrencyKey,
|
||||
maxAttempts: data.maxAttempts,
|
||||
maxDuration: data.maxDurationSeconds,
|
||||
tags: data.tags,
|
||||
machine: data.machine,
|
||||
region: data.region,
|
||||
lockToVersion: data.version === "latest" ? undefined : data.version,
|
||||
priority: data.prioritySeconds,
|
||||
},
|
||||
},
|
||||
{ customIcon: "scheduled", triggerSource: "dashboard", triggerAction: "test" }
|
||||
);
|
||||
|
||||
return result?.run;
|
||||
}
|
||||
default: {
|
||||
triggerSource satisfies never;
|
||||
throw new Error("Invalid trigger source");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user