Files

101 lines
2.7 KiB
TypeScript

import {defineStore} from "pinia";
import type {MessagesHandler} from "~/types/messagesHandler";
const messages = ref<MessagesHandler>({});
export const useSettingStore = defineStore("SettingStore", () => {
messages.value = {}
const listMenu = ref<any>([]);
const getMenu = async () => {
await $fetch("/api/setting/getListMenu", {
method: "GET",
// mode: "no-cors",
headers: {
"Content-Type": "application/json",
},
})
.then((res) => {
listMenu.value = res
// console.log(listMenu.value);
});
};
const typeUser = ref<any>([]);
const roleMenuById = ref<any>([]);
const getRoleMenuById = async (body: Record<string, any>) => {
typeUser.value = body;
await $fetch(`/api/setting/getRoleMenu`, {
// mode: "no-cors",
headers: {
"Content-Type": "application/json",
},
method: "POST",
body: JSON.stringify(body),
}).then((res) => {
roleMenuById.value = res;
});
};
const listTypeUser = ref<any>([]);
const getTypeUser = async () => {
await $fetch("/api/setting/getTipeUser", {
method: "GET",
// mode: 'no-cors',
// headers: {
// 'Access-Control-Allow-Origin': '*',
// Accept: 'application/json',
// 'Content-Type': 'application/json',
// },
})
.then((res) => {
listTypeUser.value = res
});
};
const postRoleUserMenu = async (body: Record<string, any>) => {
const roleUserMenu = body.menus.map((item) => ({
type_user_id: item.type_user_id,
menu_id: item.menu_id,
access: [
{
add: parseInt(item.access[0].value),
update: parseInt(item.access[1].value),
read: parseInt(item.access[2].value),
delete: parseInt(item.access[3].value),
}
]
}))
// await $fetch(`/api/setting/deleteRoleMenuUser`, {
// method: 'POST',
// headers: {'Content-Type': 'application/json'},
// body: JSON.stringify({key: body.menus[0].type_user_id})
// }).then(async (res) => {
await $fetch(`/api/setting/postRoleMenuUser`, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(roleUserMenu)
})
.then((res) => {
messages.value.type = 'success'
messages.value.title = 'Akses User Sudah Disimpan'
})
.catch((err) => {
console.log(err)
messages.value.type = 'error'
messages.value.title = 'Akses User Tidak Berhasil Disimpan'
})
// })
}
return {
getMenu,
getRoleMenuById,
getTypeUser,
postRoleUserMenu,
messages,
listMenu,
roleMenuById,
typeUser,
listTypeUser
};
})