import { delReq, getReq, postReq, putReq } from '@/utils';

export function delMenuApi(id) {
    return delReq(`/api/v1/menus/${id}`);
}

/**
 * 缓存下，菜单变化的可能性比较小
 */
let menus = [];
export async function getMenuDataApi(useCache) {
    if (menus.length && useCache) return menus;
    return getReq('/api/v1/menus').then(res => {
        menus = res;
        return res;
    });
}

export function getMenuDetailApi(id) {
    return getReq(`/api/v1/menus/${id}`);
}

export function addMenuApi(data) {
    return postReq('/api/v1/menus', data);
}

export function updateMenuApi(data) {
    return putReq('/api/v1/menus', data);
}

export function addRoleApi(data) {
    return postReq('/api/v1/roles', data);
}

export function getRoleApi(id) {
    return getReq(`/api/v1/roles/${id}`);
}

export function updateRoleApi(data) {
    return putReq('/api/v1/roles', data);
}

export function getMenuComponentApi(id) {
    return getReq(`/api/v1/menus/${id}/components`);
}

export function addMenuComponentApi(id, data) {
    return postReq(`/api/v1/menus/${id}/components`, data);
}
