260706_1_계정, 로그인, 보안 초안 작성

This commit is contained in:
2026-07-07 19:17:13 +09:00
parent 404941c47a
commit f8633bb1fe
4696 changed files with 6110 additions and 642171 deletions
+61
View File
@@ -0,0 +1,61 @@
import { API_BASE_URL } from "@config/config_frontend";
async function api<T>(path: string, init?: RequestInit): Promise<T> {
const response = await fetch(`${API_BASE_URL}${path}`, {
credentials: "include",
...init,
headers: { "Content-Type": "application/json", ...init?.headers },
});
const result = (await response.json()) as T & { detail?: string };
if (!response.ok) throw new Error(result.detail ?? "Request failed");
return result;
}
export function getMasterDashboard(): Promise<Record<string, unknown>> {
return api("/security/master/dashboard");
}
export function getMembers(): Promise<Record<string, unknown>> {
return api("/security/master/members");
}
export function getJoinRequests(): Promise<Record<string, unknown>> {
return api("/security/master/join-requests");
}
export function decideJoinRequest(
requestId: number,
approved: boolean,
comment?: string,
): Promise<Record<string, unknown>> {
return api(`/security/master/join-requests/${requestId}/decision`, {
method: "POST",
body: JSON.stringify({ approved, comment }),
});
}
export function removeMember(userId: number): Promise<Record<string, unknown>> {
return api(`/security/master/members/${userId}/remove`, { method: "POST" });
}
export function getAdminDashboard(): Promise<Record<string, unknown>> {
return api("/security/admin/dashboard");
}
export function getAdminCollection(
collection: "companies" | "users" | "support",
): Promise<Record<string, unknown>> {
return api(`/security/admin/${collection}`);
}
export function updateAdminStatus(
entity: "company" | "user" | "support",
targetId: number,
status: string,
reason: string,
): Promise<Record<string, unknown>> {
return api(`/security/admin/${entity}/${targetId}/status`, {
method: "PATCH",
body: JSON.stringify({ status, reason }),
});
}