Files
triggerdotdev--trigger.dev/apps/webapp/app/routes/api.v1.deployments.current.ts
T
2026-07-13 13:32:57 +08:00

55 lines
1.5 KiB
TypeScript

import { json } from "@remix-run/server-runtime";
import { $replica } from "~/db.server";
import { createLoaderApiRoute } from "~/services/routeBuilders/apiBuilder.server";
export const loader = createLoaderApiRoute(
{
allowJWT: true,
corsStrategy: "none",
authorization: {
action: "read",
resource: () => ({ type: "deployments", id: "current" }),
},
findResource: async (_params, auth) => {
const promotion = await $replica.workerDeploymentPromotion.findFirst({
where: {
environmentId: auth.environment.id,
label: "current",
},
select: {
deployment: {
select: {
friendlyId: true,
createdAt: true,
shortCode: true,
version: true,
runtime: true,
runtimeVersion: true,
status: true,
deployedAt: true,
git: true,
errorData: true,
},
},
},
});
return promotion?.deployment ?? undefined;
},
},
async ({ resource: deployment }) => {
return json({
id: deployment.friendlyId,
createdAt: deployment.createdAt,
shortCode: deployment.shortCode,
version: deployment.version,
runtime: deployment.runtime,
runtimeVersion: deployment.runtimeVersion,
status: deployment.status,
deployedAt: deployment.deployedAt ?? undefined,
git: deployment.git ?? undefined,
error: deployment.errorData ?? undefined,
});
}
);