good forst commit

This commit is contained in:
2026-06-09 02:02:40 +05:30
parent 801c1d7121
commit 249d759e6a
215 changed files with 15425 additions and 1240 deletions
+15
View File
@@ -0,0 +1,15 @@
import { clearMemberCookie, jsonResponse, memberApiFetch } from '../../../_lib/api';
export const dynamic = 'force-dynamic';
export async function DELETE(): Promise<Response> {
const res = await memberApiFetch('/my/account', { method: 'DELETE' });
if (res.status === 204) {
return new Response(null, {
status: 204,
headers: { 'Set-Cookie': clearMemberCookie() },
});
}
const body = await res.json().catch(() => ({}));
return jsonResponse(body, res.status, { 'Set-Cookie': clearMemberCookie() });
}
+13
View File
@@ -0,0 +1,13 @@
import { jsonResponse, memberApiFetch } from '../../../../_lib/api';
export const dynamic = 'force-dynamic';
export async function GET(
_req: Request,
{ params }: { params: Promise<{ id: string }> },
): Promise<Response> {
const { id } = await params;
const res = await memberApiFetch(`/my/groups/${id}`);
const body = await res.json();
return jsonResponse(body, res.status);
}
+9
View File
@@ -0,0 +1,9 @@
import { jsonResponse, memberApiFetch } from '../../../_lib/api';
export const dynamic = 'force-dynamic';
export async function GET(): Promise<Response> {
const res = await memberApiFetch('/my/groups');
const body = await res.json();
return jsonResponse(body, res.status);
}
+7
View File
@@ -0,0 +1,7 @@
import { clearMemberCookie } from '../../../_lib/api';
export const dynamic = 'force-dynamic';
export async function POST(): Promise<Response> {
return new Response(null, { status: 204, headers: { 'Set-Cookie': clearMemberCookie() } });
}
+10
View File
@@ -0,0 +1,10 @@
import { jsonResponse, memberApiFetch } from '../../../_lib/api';
export const dynamic = 'force-dynamic';
export async function POST(req: Request): Promise<Response> {
const body = await req.json();
const res = await memberApiFetch('/my/opt-in', { method: 'POST', body: JSON.stringify(body) });
const payload = await res.json();
return jsonResponse(payload, res.status);
}
+10
View File
@@ -0,0 +1,10 @@
import { jsonResponse, memberApiFetch } from '../../../_lib/api';
export const dynamic = 'force-dynamic';
export async function POST(req: Request): Promise<Response> {
const body = await req.json();
const res = await memberApiFetch('/my/opt-out', { method: 'POST', body: JSON.stringify(body) });
const payload = await res.json();
return jsonResponse(payload, res.status);
}
+9
View File
@@ -0,0 +1,9 @@
import { jsonResponse, memberApiFetch } from '../../../_lib/api';
export const dynamic = 'force-dynamic';
export async function GET(): Promise<Response> {
const res = await memberApiFetch('/my/profile');
const body = await res.json();
return jsonResponse(body, res.status);
}