import { serverFetchJson } from "@/app/utils/fetchUtil"; import { BASE_API_URL } from "@/config/api"; import { cache } from "react"; import "server-only"; export interface UserResult { action: any; id: number; username: string; // name: string; } // export interface DetailedUser extends UserResult { // username: string; // password: string // } export interface UserDetail { data: UserResult; authIds: number[]; groupIds: number[]; auths: any[] } export type passwordRule = { min: number; max: number; number: boolean; upperEng: boolean; lowerEng: boolean; specialChar: boolean; } export const preloadUser = () => { fetchUser(); }; export const preloadUserDetail = (id: number) => { fetchUserDetail(id); }; export const fetchUser = cache(async () => { return serverFetchJson(`${BASE_API_URL}/user`, { next: { tags: ["user"] }, }); }); export const fetchUserDetail = cache(async (id: number) => { return serverFetchJson(`${BASE_API_URL}/user/${id}`, { next: { tags: ["user"] }, }); }); export const fetchPwRules = cache(async () => { return serverFetchJson(`${BASE_API_URL}/user/password-rule`, { next: { tags: ["pwRule"] }, }); });