import { createApiClient } from "../lib/apiClient"; import type { LabelCategoryCreateInput, LabelCategoryDto, LabelCategoryGetListInput, LabelCategoryUpdateInput, PagedResultDto, } from "../types/labelCategory"; const api = createApiClient({ getToken: () => { try { return localStorage.getItem("access_token") ?? localStorage.getItem("token") ?? null; } catch { return null; } }, }); const PATH = "/label-category"; export async function getLabelCategories(input: LabelCategoryGetListInput, signal?: AbortSignal): Promise> { return api.requestJson>({ path: PATH, method: "GET", query: { SkipCount: input.skipCount, MaxResultCount: input.maxResultCount, Sorting: input.sorting, Keyword: input.keyword, State: input.state, }, signal, }); } export async function getLabelCategory(id: string, signal?: AbortSignal): Promise { return api.requestJson({ path: `${PATH}/${encodeURIComponent(id)}`, method: "GET", signal, }); } export async function createLabelCategory(input: LabelCategoryCreateInput): Promise { return api.requestJson({ path: PATH, method: "POST", body: { categoryCode: input.categoryCode, categoryName: input.categoryName, categoryPhotoUrl: input.categoryPhotoUrl, state: input.state ?? true, orderNum: input.orderNum, }, }); } export async function updateLabelCategory(id: string, input: LabelCategoryUpdateInput): Promise { return api.requestJson({ path: `${PATH}/${encodeURIComponent(id)}`, method: "PUT", body: { categoryCode: input.categoryCode, categoryName: input.categoryName, categoryPhotoUrl: input.categoryPhotoUrl, state: input.state ?? true, orderNum: input.orderNum, }, }); } export async function deleteLabelCategory(id: string): Promise { await api.requestJson({ path: `${PATH}/${encodeURIComponent(id)}`, method: "DELETE", }); }