Files
crawler-plugin/admin-frontend-vue/src/pages/account/shop-group-api.ts
T

40 lines
1.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/** 数据权限分组 API 适配(任务 59module 13 task 253 扩展 CRUD)。 */
import { http } from '@/api/http'
import { unwrap } from '@/api/envelope'
import {
parseShopGroupItem,
parseShopGroupList,
toShopGroupCreatePayload,
toShopGroupUpdatePayload,
type ShopGroupItem,
} from './shop-group-model'
export const SHOP_GROUPS_ENDPOINT = '/api/admin/shop-manages/groups'
export async function fetchShopGroups(): Promise<ShopGroupItem[]> {
const { data } = await http.get<unknown>(SHOP_GROUPS_ENDPOINT)
return parseShopGroupList(data)
}
/** 新建分组:POST /api/admin/shop-manages/groups(创建人 = 组长 = 当前操作者)。 */
export async function createShopGroup(name: string, memberUserIds: number[], createdById: number): Promise<ShopGroupItem> {
const { data } = await http.post<unknown>(SHOP_GROUPS_ENDPOINT, toShopGroupCreatePayload(name, memberUserIds, createdById))
const created = parseShopGroupItem(unwrap<unknown>(data))
if (!created) throw new Error('创建分组响应异常:缺少分组数据')
return created
}
/** 更新分组:PUT /api/admin/shop-manages/groups/{id}。 */
export async function updateShopGroup(id: number, name: string, memberUserIds: number[]): Promise<ShopGroupItem> {
const { data } = await http.put<unknown>(`${SHOP_GROUPS_ENDPOINT}/${id}`, toShopGroupUpdatePayload(name, memberUserIds))
const updated = parseShopGroupItem(unwrap<unknown>(data))
if (!updated) throw new Error('更新分组响应异常:缺少分组数据')
return updated
}
/** 删除分组:DELETE /api/admin/shop-manages/groups/{id}。 */
export async function deleteShopGroup(id: number): Promise<void> {
const { data } = await http.delete<unknown>(`${SHOP_GROUPS_ENDPOINT}/${id}`)
unwrap<unknown>(data)
}