import { NextRequest, NextResponse } from "next/server"; import { appleApiRequest } from "@/app/asc/api"; // GET /api/asc/localizations?versionId=xxx export async function GET(req: NextRequest) { const versionId = req.nextUrl.searchParams.get("versionId"); if (!versionId) return NextResponse.json({ error: "versionId gerekli" }, { status: 400 }); const result = await appleApiRequest( `/appStoreVersions/${versionId}/appStoreVersionLocalizations?fields[appStoreVersionLocalizations]=locale,description,keywords,whatsNew,promotionalText,marketingUrl,supportUrl` ); if (result.error) return NextResponse.json({ error: result.error }, { status: 502 }); return NextResponse.json(result.data); } // PATCH /api/asc/localizations { localizationId, payload } export async function PATCH(req: NextRequest) { const body = await req.json(); const { localizationId, payload } = body ?? {}; if (!localizationId) return NextResponse.json({ error: "localizationId gerekli" }, { status: 400 }); // Apple API does not allow 'locale' in UPDATE requests (409 ENTITY_ERROR.ATTRIBUTE.NOT_ALLOWED) const { locale: _locale, ...attributes } = payload ?? {}; const result = await appleApiRequest(`/appStoreVersionLocalizations/${localizationId}`, { method: "PATCH", body: JSON.stringify({ data: { type: "appStoreVersionLocalizations", id: localizationId, attributes, }, }), }); if (result.error) return NextResponse.json({ error: result.error }, { status: 502 }); return NextResponse.json(result.data); } // POST /api/asc/localizations { versionId, locale } export async function POST(req: NextRequest) { const body = await req.json(); const { versionId, locale } = body ?? {}; if (!versionId || !locale) return NextResponse.json({ error: "versionId ve locale gerekli" }, { status: 400 }); const result = await appleApiRequest(`/appStoreVersionLocalizations`, { method: "POST", body: JSON.stringify({ data: { type: "appStoreVersionLocalizations", attributes: { locale }, relationships: { appStoreVersion: { data: { type: "appStoreVersions", id: versionId }, }, }, }, }), }); if (result.error) return NextResponse.json({ error: result.error }, { status: 502 }); return NextResponse.json(result.data, { status: 201 }); }