import apiClient from "@/infrastructure/apiClient";
import apiPath from "@/infrastructure/apiPath";
export default {
  async search(searchModel) {
    const params = JSON.parse(JSON.stringify(searchModel));

    var searchResult = await apiClient
      .post(apiPath.menu.search, params)
      .then((r) => {
        return r.data;
      })
      .catch((e) => {
        console.log(e);
        return {};
      });
    return searchResult;
  },
  async getTree() {
    var searchResult = await apiClient
      .get(apiPath.menu.getTree)
      .then((r) => {
        return r.data;
      })
      .catch((e) => {
        console.log(e);
        return {};
      });
    return searchResult;
  },
  async createOrUpdate(menuModel) {
    const params = JSON.parse(JSON.stringify(menuModel));
    var searchResult = await apiClient
      .post(apiPath.menu.createOrUpdate, params)
      .then((r) => {
        return r.data;
      })
      .catch((e) => {
        console.log(e);
        return {};
      });
    return searchResult;
  },
  async getById(id) {
    var searchResult = await apiClient
      .get(apiPath.menu.getById + id)
      .then((r) => {
        return r.data;
      })
      .catch((e) => {
        console.log(e);
        return {};
      });
    return searchResult;
  },
  async lock(menuId) {
    const params = JSON.parse(JSON.stringify({ Id: menuId }));

    var roleResult = await apiClient
      .put(apiPath.menu.lock, params)
      .then((r) => {
        return r.data;
      })
      .catch((e) => {
        console.log(e);
        return {};
      });
    return roleResult;
  },
  async unlock(menuId) {
    const params = JSON.parse(JSON.stringify({ Id: menuId }));

    var roleResult = await apiClient
      .put(apiPath.menu.unLock, params)
      .then((r) => {
        return r.data;
      })
      .catch((e) => {
        console.log(e);
        return {};
      });
    return roleResult;
  },
  async delete(menuId) {
    var roleResult = await apiClient
      .delete(apiPath.menu.delete + menuId)
      .then((r) => {
        return r.data;
      })
      .catch((e) => {
        console.log(e);
        return {};
      });
    return roleResult;
  },
  async getMenuList() {
    // console.log("apiClient");
    // console.log(apiClient);
    var roleResult = await apiClient
      .get(apiPath.menu.getMenuList)
      .then((r) => {
        return r.data;
      })
      .catch((e) => {
        console.log(e);
        return {};
      });
    return roleResult;
  },
};
