17 lines · 731 B
import { handleBadge } from "./badge";
import { handleCacheApi } from "./cache-api";
import { jobTokenAccess } from "./job-token";
import { handleOidcRoutes } from "./oidc";

/** Worker-level Actions endpoints: job cache, OIDC token issuance and discovery, and status badges. */
export async function handleActionsRoutes(request: Request, url: URL): Promise<Response | null> {
  if (url.pathname === "/api/actions/cache") {
    const access = await jobTokenAccess(request);
    if (!access) return Response.json({ error: "invalid job token" }, { status: 401 });
    return handleCacheApi(request, url, access);
  }
  const oidc = await handleOidcRoutes(request, url);
  if (oidc) return oidc;
  return handleBadge(request, url);
}