mirror of
https://github.com/ArthurDanjou/arthome.git
synced 2026-01-30 10:57:49 +01:00
Working on arthome
This commit is contained in:
@@ -1,13 +1,47 @@
|
||||
export function useCategories() {
|
||||
async function getCategories() {
|
||||
return useAsyncData<CategoryType[]>(async () => {
|
||||
const res = await $fetch('/api/categories')
|
||||
console.log('res', res)
|
||||
return res
|
||||
import type { type CategoryType, CreateCategorySchema, UpdateCategorySchema } from '~~/types/types'
|
||||
|
||||
export async function useCategories() {
|
||||
const { data: categories, refresh }
|
||||
= await useAsyncData<CategoryType[]>(async () => await useRequestFetch()('/api/categories'))
|
||||
|
||||
async function getCategory(id: number) {
|
||||
return categories.data.value.find(category => category.id === id)
|
||||
}
|
||||
|
||||
async function createCategory(category: CreateCategorySchema) {
|
||||
await $fetch('/api/categories', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(category),
|
||||
})
|
||||
.catch(error => useErrorToast('Category creation failed!', `Error: ${error}`))
|
||||
await refresh()
|
||||
await useSuccessToast('Category successfully created!')
|
||||
}
|
||||
|
||||
async function updateCategory(category: UpdateCategorySchema & { id: number }) {
|
||||
await $fetch(`/api/categories/${category.id}`, {
|
||||
method: 'PUT',
|
||||
body: JSON.stringify(category),
|
||||
})
|
||||
.catch(error => useErrorToast('Category update failed!', `Error: ${error}`))
|
||||
await refresh()
|
||||
await useSuccessToast('Category successfully updated!')
|
||||
}
|
||||
|
||||
async function deleteCategory(id: number) {
|
||||
await $fetch(`/api/categories/${id}`, {
|
||||
method: 'DELETE',
|
||||
})
|
||||
.catch(error => useErrorToast('Category deletion failed!', `Error: ${error}`))
|
||||
await refresh()
|
||||
await useSuccessToast('Category successfully deleted!')
|
||||
}
|
||||
|
||||
return {
|
||||
getCategories,
|
||||
categories,
|
||||
getCategory,
|
||||
createCategory,
|
||||
updateCategory,
|
||||
deleteCategory,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,52 @@
|
||||
export function useTabs() {
|
||||
async function createTab(tab: TabType) {
|
||||
console.log('createTab', tab)
|
||||
return tab
|
||||
import type { CreateTabSchema, TabType, UpdateTabSchema } from '~~/types/types'
|
||||
|
||||
export async function useTabs() {
|
||||
const { data: tabs, refresh }
|
||||
= await useAsyncData<TabType[]>(async () => await useRequestFetch()('/api/tabs'))
|
||||
|
||||
function getTabsForCategory(categoryId: number): TabType[] {
|
||||
return tabs.value.filter(tab => tab.categoryId === categoryId)
|
||||
}
|
||||
|
||||
async function deleteTab(tab: TabType) {
|
||||
console.log('deleteTab', tab)
|
||||
return tab
|
||||
async function createTab(tab: CreateTabSchema) {
|
||||
await $fetch('/api/tabs', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(tab),
|
||||
})
|
||||
.then(async () => {
|
||||
await refresh()
|
||||
useSuccessToast('Tab successfully created!')
|
||||
})
|
||||
.catch(error => useErrorToast('Tab creation failed!', `Error: ${error}`))
|
||||
}
|
||||
|
||||
async function updateTab(tab: TabType) {
|
||||
console.log('updateTab', tab)
|
||||
return tab
|
||||
async function updateTab(tab: UpdateTabSchema) {
|
||||
console.log(tab)
|
||||
await $fetch(`/api/tabs/${tab.id}`, {
|
||||
method: 'PUT',
|
||||
body: JSON.stringify(tab),
|
||||
})
|
||||
.then(async () => {
|
||||
await refresh()
|
||||
useSuccessToast('Tab successfully updated!')
|
||||
})
|
||||
.catch(error => useErrorToast('Tab update failed!', `Error: ${error}`))
|
||||
}
|
||||
|
||||
async function deleteTab(id: number) {
|
||||
await $fetch(`/api/tabs/${id}`, {
|
||||
method: 'DELETE',
|
||||
})
|
||||
.catch(error => useErrorToast('Tab deletion failed!', `Error: ${error}`))
|
||||
await refresh()
|
||||
useSuccessToast('Tab successfully deleted!')
|
||||
}
|
||||
|
||||
return {
|
||||
tabs,
|
||||
createTab,
|
||||
deleteTab,
|
||||
getTabsForCategory,
|
||||
updateTab,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user