68 lines
2.3 KiB
TypeScript
68 lines
2.3 KiB
TypeScript
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 });
|
|
}
|