Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
JavaScript
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293// Register a new build in MongoDB for builds.false.work// Called by build scripts with API key authentication
import { connect } from "../../backend/database.mjs";import { respond } from "../../backend/http.mjs";
const BUILDS_API_KEY = process.env.BUILDS_API_KEY;
export async function handler(event, context) { if (event.httpMethod === "OPTIONS") { return respond(204, ""); }
if (event.httpMethod !== "POST") { return respond(405, { error: "Method not allowed" }); }
// Verify API key const apiKey = event.headers["x-api-key"] || event.headers["X-API-Key"]; if (!apiKey || apiKey !== BUILDS_API_KEY) { return respond(401, { error: "Unauthorized" }); }
try { const build = JSON.parse(event.body);
// Validate required fields const required = ["platform", "version", "timestamp", "sizeMB", "downloadUrl"]; for (const field of required) { if (build[field] === undefined || build[field] === null) { return respond(400, { error: `Missing required field: ${field}` }); } }
// Validate platform const validPlatforms = ["windows", "mac", "ios"]; if (!validPlatforms.includes(build.platform)) { return respond(400, { error: `Invalid platform: ${build.platform}. Must be one of: ${validPlatforms.join(", ")}` }); }
const database = await connect(); const builds = database.db.collection("false.work-builds");
// Ensure index exists (idempotent) await builds.createIndex({ timestamp: -1 }); await builds.createIndex({ platform: 1, version: 1 }, { unique: true });
// Convert timestamp string to Date const buildDoc = { ...build, timestamp: new Date(build.timestamp), createdAt: new Date() };
// Check for duplicate (same platform + version) const existing = await builds.findOne({ platform: build.platform, version: build.version });
if (existing) { await database.disconnect(); return respond(409, { error: "Build already exists", existingId: existing._id.toString() }); }
const result = await builds.insertOne(buildDoc); await database.disconnect();
console.log(`✅ Build registered: ${build.platform} ${build.version}`);
return respond(201, { success: true, insertedId: result.insertedId.toString(), build: { ...buildDoc, _id: result.insertedId.toString() } }); } catch (error) { console.error("Error registering build:", error);
// Handle duplicate key error if (error.code === 11000) { return respond(409, { error: "Build already exists (duplicate key)" }); }
return respond(500, { error: error.message }); }}