Model controllers added

This commit is contained in:
Kiss Dávid
2025-07-28 13:00:46 +02:00
parent 590adb271d
commit 465613f6a0
17 changed files with 470 additions and 100 deletions
@@ -0,0 +1,90 @@
// import type { HttpContext } from '@adonisjs/core/http'
import RestaurantMenu from "#models/restaurant_menu"
import { HttpContext } from "@adonisjs/core/http"
import logger from "@adonisjs/core/services/logger"
export default class RestaurantMenusController {
/**
* Retrieve all restaurant menus.
*
* @returns An array of all restaurant menus.
*/
async getAll() {
const menus = await RestaurantMenu.all()
return menus
}
/**
* Retrieve a restaurant menu.
*
* @bodyParam id number The id of the menu to retrieve.
* @returns The retrieved menu.
*/
async getOne({ request }: HttpContext) {
const id = request.body().id
try {
const menu = await RestaurantMenu.find(id)
return menu
}
catch (error) {
logger.error('Menu retrieval failed: %s', error)
}
}
/**
* Create a restaurant menu.
*
* @bodyParam name string The name of the menu.
* @bodyParam description string The description of the menu.
* @returns The created menu.
*/
async create({ request, auth }: HttpContext) {
const data = request.body()
try {
const menu = await RestaurantMenu.create(data)
logger.info('Menu created: %s by %s', menu.name, auth.getUserOrFail().email)
return menu
}
catch (error) {
logger.error('Menu creation failed: %s', error)
}
}
/**
* Update a restaurant menu.
*
* @bodyParam id number The id of the menu to update.
* @bodyParam name string The new name of the menu.
*/
async update({ request, auth }: HttpContext) {
const data = request.body()
try {
const menu = await RestaurantMenu.find(data.id)
menu?.merge(data)
await menu?.save()
logger.info('Menu updated: %s by %s', menu?.name, auth.getUserOrFail().email)
}
catch (error) {
logger.error('Menu update failed: %s', error)
}
}
/**
* Delete a restaurant menu.
*
* @bodyParam id number The id of the menu to delete.
*/
async delete({ request, auth }: HttpContext) {
const id = request.body().id
try {
const menu = await RestaurantMenu.find(id)
await menu?.delete()
logger.info('Menu deleted: %s by %s', menu?.name, auth.getUserOrFail().email)
}
catch (error) {
logger.error('Menu deletion failed: %s', error)
}
}
}