/** * GET /api/players/:account_id — public or self profile from D1. */ import { sessionFromRequest } from "../auth/_steam_common.js"; import { jsonResponse, loadPlayerBundle } from "./_db.js"; export async function onRequestGet(context) { try { const env = context.env || {}; if (!env.DB) return jsonResponse({ error: "database not configured" }, 503); const accountId = Number(context.params && context.params.account_id); if (!Number.isFinite(accountId) || accountId <= 0) { return jsonResponse({ error: "bad account_id" }, 400); } const session = await sessionFromRequest(context); const self = session && Number(session.account_id) === accountId; const bundle = await loadPlayerBundle(env.DB, accountId); if (!bundle) return jsonResponse({ error: "not found" }, 404); if (!self && !bundle.public_share) { return jsonResponse({ error: "private" }, 404); } return jsonResponse(bundle); } catch (e) { return jsonResponse( { error: "player get failed", detail: String((e && e.message) || e) }, 500 ); } }