66 lines
1.7 KiB
TypeScript
66 lines
1.7 KiB
TypeScript
import { client } from "@/shared/api";
|
|
import { ENDPOINT } from "@/shared/config";
|
|
import type {
|
|
Menu,
|
|
MenuFormData,
|
|
MenuService,
|
|
TreeMenu,
|
|
TreeNode,
|
|
} from "../model/menu-interface";
|
|
|
|
export class MenuApiService implements MenuService {
|
|
public async getMenuInfo(menuCd: number): Promise<Menu> {
|
|
const response = await client.get<Menu>(
|
|
`${ENDPOINT.CMS_SERVICE.MENUS}/${menuCd}`,
|
|
);
|
|
return response.data;
|
|
}
|
|
|
|
public async createMenu(data: MenuFormData): Promise<void> {
|
|
const response = await client.post<void>(
|
|
`${ENDPOINT.CMS_SERVICE.MENUS}`,
|
|
data,
|
|
);
|
|
return response.data;
|
|
}
|
|
|
|
public async updateMenu(
|
|
menuCd: number,
|
|
data: Omit<MenuFormData, "siteId">,
|
|
): Promise<void> {
|
|
const response = await client.put<void>(
|
|
`${ENDPOINT.CMS_SERVICE.MENUS}/${menuCd}`,
|
|
data,
|
|
);
|
|
return response.data;
|
|
}
|
|
|
|
public async deleteMenu(menuCd: number): Promise<void> {
|
|
await client.delete(`${ENDPOINT.CMS_SERVICE.MENUS}/${menuCd}`);
|
|
}
|
|
|
|
public async getTreeMenuList(siteId: string): Promise<TreeMenu[]> {
|
|
const response = await client.get<TreeMenu[]>(
|
|
`${ENDPOINT.CMS_SERVICE.MENUS}/${siteId}/tree`,
|
|
);
|
|
return response.data;
|
|
}
|
|
|
|
public async updateTreeMenu(siteId: string, data: TreeNode[]): Promise<void> {
|
|
const response = await client.put<void>(
|
|
`${ENDPOINT.CMS_SERVICE.MENUS}/${siteId}/tree`,
|
|
data,
|
|
);
|
|
return response.data;
|
|
}
|
|
|
|
public async updateMenuName(menuCd: number, name: string): Promise<void> {
|
|
const response = await client.put<void>(
|
|
`${ENDPOINT.CMS_SERVICE.MENUS}/${menuCd}/${name}`,
|
|
);
|
|
return response.data;
|
|
}
|
|
}
|
|
|
|
export const MenuApi = new MenuApiService();
|