Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
JavaScript
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273// Painting Code Lookup API// Returns painting slug by short code (e.g., "k3d" or "WDv")
import { connect } from "../../backend/database.mjs";
function respond(statusCode, body) { return { statusCode, headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Headers": "Content-Type", "Access-Control-Allow-Methods": "GET, OPTIONS", }, body: JSON.stringify(body), };}
export async function handler(event) { // Handle preflight if (event.httpMethod === "OPTIONS") { return respond(200, {}); }
const { code } = event.queryStringParameters || {};
if (!code) { return respond(400, { error: "Missing code parameter" }); }
let database; try { database = await connect(); const paintings = database.db.collection("paintings");
// Look up painting by code const painting = await paintings.findOne( { code }, { projection: { slug: 1, code: 1, user: 1, _id: 0 } } );
if (!painting) { await database.disconnect(); return respond(404, { error: "Painting not found" }); }
// Get handle if painting has a user let handle = "anon"; if (painting.user) { const handles = database.db.collection("@handles"); const handleDoc = await handles.findOne( { _id: painting.user }, { projection: { handle: 1, _id: 0 } } ); if (handleDoc) { handle = handleDoc.handle; } }
await database.disconnect(); return respond(200, { slug: painting.slug, code: painting.code, handle: handle, });
} catch (error) { console.error("Error looking up painting code:", error); if (database) await database.disconnect(); return respond(500, { error: "Internal server error" }); }}