first commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import fs from 'fs/promises'
|
||||
import path from 'path'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
try {
|
||||
const { menuId, reference } = await readBody<{
|
||||
menuId: string
|
||||
reference: string
|
||||
}>(event)
|
||||
|
||||
if (!menuId || !reference) {
|
||||
throw createError({
|
||||
statusCode: 400,
|
||||
statusMessage: 'MenuId and reference are required'
|
||||
})
|
||||
}
|
||||
|
||||
const filePath = path.join(process.cwd(), 'matdash', 'data', 'menus.json')
|
||||
const fileContent = await fs.readFile(filePath, 'utf-8')
|
||||
const data = JSON.parse(fileContent)
|
||||
|
||||
// Remove menu item and its children recursively
|
||||
const removeMenuItem = (items: any[], id: string): any[] => {
|
||||
return items.filter(item => {
|
||||
if (item.id === id) return false
|
||||
if (item.children) {
|
||||
item.children = removeMenuItem(item.children, id)
|
||||
}
|
||||
return true
|
||||
})
|
||||
}
|
||||
|
||||
data.menus = removeMenuItem(data.menus, menuId)
|
||||
|
||||
// Save updated data
|
||||
await fs.writeFile(filePath, JSON.stringify(data, null, 2))
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: 'Menu deleted successfully'
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error deleting menu:', error)
|
||||
throw createError({
|
||||
statusCode: 500,
|
||||
statusMessage: 'Failed to delete menu'
|
||||
})
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user