fix(admin-web): proxy routes forward body on DELETE — use method !== GET/HEAD guard
This commit is contained in:
parent
e712113c30
commit
b6f9636171
@ -22,7 +22,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
||||||
};
|
};
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) fetchOptions.body = await req.text();
|
if (req.method !== 'GET' && req.method !== 'HEAD') fetchOptions.body = await req.text();
|
||||||
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
||||||
const data = await res.json().catch(() => null);
|
const data = await res.json().catch(() => null);
|
||||||
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
||||||
|
|||||||
@ -29,7 +29,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
};
|
};
|
||||||
|
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) {
|
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
||||||
fetchOptions.body = await req.text();
|
fetchOptions.body = await req.text();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
||||||
};
|
};
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) fetchOptions.body = await req.text();
|
if (req.method !== 'GET' && req.method !== 'HEAD') fetchOptions.body = await req.text();
|
||||||
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
||||||
const data = await res.json().catch(() => null);
|
const data = await res.json().catch(() => null);
|
||||||
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
||||||
|
|||||||
@ -22,7 +22,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
||||||
};
|
};
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) fetchOptions.body = await req.text();
|
if (req.method !== 'GET' && req.method !== 'HEAD') fetchOptions.body = await req.text();
|
||||||
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
||||||
const data = await res.json().catch(() => null);
|
const data = await res.json().catch(() => null);
|
||||||
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
||||||
|
|||||||
@ -22,7 +22,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
||||||
};
|
};
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) fetchOptions.body = await req.text();
|
if (req.method !== 'GET' && req.method !== 'HEAD') fetchOptions.body = await req.text();
|
||||||
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
||||||
const data = await res.json().catch(() => null);
|
const data = await res.json().catch(() => null);
|
||||||
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
||||||
|
|||||||
@ -22,7 +22,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
||||||
};
|
};
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) fetchOptions.body = await req.text();
|
if (req.method !== 'GET' && req.method !== 'HEAD') fetchOptions.body = await req.text();
|
||||||
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
||||||
const data = await res.json().catch(() => null);
|
const data = await res.json().catch(() => null);
|
||||||
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
||||||
|
|||||||
@ -22,7 +22,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
||||||
};
|
};
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) fetchOptions.body = await req.text();
|
if (req.method !== 'GET' && req.method !== 'HEAD') fetchOptions.body = await req.text();
|
||||||
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
||||||
const data = await res.json().catch(() => null);
|
const data = await res.json().catch(() => null);
|
||||||
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
||||||
|
|||||||
@ -22,7 +22,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
||||||
};
|
};
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) fetchOptions.body = await req.text();
|
if (req.method !== 'GET' && req.method !== 'HEAD') fetchOptions.body = await req.text();
|
||||||
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
||||||
const data = await res.json().catch(() => null);
|
const data = await res.json().catch(() => null);
|
||||||
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
||||||
|
|||||||
@ -22,7 +22,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
||||||
};
|
};
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) fetchOptions.body = await req.text();
|
if (req.method !== 'GET' && req.method !== 'HEAD') fetchOptions.body = await req.text();
|
||||||
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
||||||
const data = await res.json().catch(() => null);
|
const data = await res.json().catch(() => null);
|
||||||
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
||||||
|
|||||||
@ -29,7 +29,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
};
|
};
|
||||||
|
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) {
|
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
||||||
fetchOptions.body = await req.text();
|
fetchOptions.body = await req.text();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
||||||
};
|
};
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) fetchOptions.body = await req.text();
|
if (req.method !== 'GET' && req.method !== 'HEAD') fetchOptions.body = await req.text();
|
||||||
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
||||||
const data = await res.json().catch(() => null);
|
const data = await res.json().catch(() => null);
|
||||||
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
||||||
|
|||||||
@ -22,7 +22,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
||||||
};
|
};
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) fetchOptions.body = await req.text();
|
if (req.method !== 'GET' && req.method !== 'HEAD') fetchOptions.body = await req.text();
|
||||||
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
||||||
const data = await res.json().catch(() => null);
|
const data = await res.json().catch(() => null);
|
||||||
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
||||||
|
|||||||
@ -29,7 +29,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
};
|
};
|
||||||
|
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) {
|
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
||||||
fetchOptions.body = await req.text();
|
fetchOptions.body = await req.text();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -29,7 +29,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
};
|
};
|
||||||
|
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) {
|
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
||||||
fetchOptions.body = await req.text();
|
fetchOptions.body = await req.text();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@ async function proxy(req: NextRequest, { params }: { params: Promise<{ path: str
|
|||||||
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
'x-product-id': req.headers.get('x-product-id') || process.env.PRODUCT_ID || 'lysnrai',
|
||||||
};
|
};
|
||||||
const fetchOptions: RequestInit = { method: req.method, headers };
|
const fetchOptions: RequestInit = { method: req.method, headers };
|
||||||
if (['POST', 'PUT', 'PATCH'].includes(req.method)) fetchOptions.body = await req.text();
|
if (req.method !== 'GET' && req.method !== 'HEAD') fetchOptions.body = await req.text();
|
||||||
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
const res = await fetch(`${PLATFORM_URL}${targetPath}${qs}`, fetchOptions);
|
||||||
const data = await res.json().catch(() => null);
|
const data = await res.json().catch(() => null);
|
||||||
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
return NextResponse.json(data ?? { error: res.statusText }, { status: res.status });
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user