Buffalo Eats Online API Documentation

ApiMenuController extends ApiBaseController
in package

REST API controller for menu resources.

Provides endpoints to list categories, items, and item details. Supports filtering by category, availability, and dietary tags.

Tags
author

J.J. Johnson visionquest716@gmail.com

copyright

2026 VisionQuestServices LLC

Table of Contents

Properties

$layout  : string

Methods

categories()  : void
List menu categories for the authenticated business.
items()  : void
List menu items for the authenticated business.
showItem()  : void
Show a single menu item with variants and tags.
updateItem()  : void
Update a menu item (availability, price, etc.).
baseUrl()  : string
Get the base URL for the application.
buildPagination()  : array<string|int, mixed>
Build pagination metadata for views.
businessId()  : int
Get the authenticated business ID from API context.
clearOldInput()  : void
Clear stored old input data.
error()  : void
Return an error JSON response.
flash()  : void
Set a flash message in the session.
flashOldInput()  : void
Store current POST data as old input for form repopulation.
getJsonBody()  : array<string|int, mixed>
Parse JSON request body.
getPage()  : int
Get the current page number from the query string.
getPaginationParams()  : array{page: int, limit: int, offset: int}
Get pagination parameters from query string.
json()  : void
Send a JSON response.
old()  : mixed
Get previous form input after validation failure.
paginationMeta()  : array<string|int, mixed>
Build pagination metadata for a response.
queryParam()  : mixed
Get a query string parameter with optional default.
redirect()  : void
Send an HTTP redirect.
requirePermission()  : void
Require that the authenticated client user has a specific permission.
setCorsHeaders()  : void
Set CORS headers for the response.
success()  : void
Return a successful JSON response.
url()  : string
Generate a full URL for a given path.
validateRequired()  : array<string|int, string>
Validate required fields in a data array.
view()  : void
Render a view template wrapped in a layout.
formatMenuItem()  : array<string|int, mixed>
Format a menu item record for API output.

Properties

$layout

protected string $layout = 'main'

Default layout template

Methods

categories()

List menu categories for the authenticated business.

public categories() : void

GET /api/v1/menu/categories

items()

List menu items for the authenticated business.

public items() : void

GET /api/v1/menu/items

Query params: category_id, available, page, limit

showItem()

Show a single menu item with variants and tags.

public showItem(string $id) : void

GET /api/v1/menu/items/{id}

Parameters
$id : string

Item ID

updateItem()

Update a menu item (availability, price, etc.).

public updateItem(string $id) : void

PATCH /api/v1/menu/items/{id}

Body: {"is_available": false, "price": 12.99}

Parameters
$id : string

Item ID

baseUrl()

Get the base URL for the application.

protected baseUrl() : string
Return values
string

buildPagination()

Build pagination metadata for views.

protected buildPagination(int $total, int $page, int $perPage, string $baseUrl) : array<string|int, mixed>
Parameters
$total : int

Total record count

$page : int

Current page number

$perPage : int

Records per page

$baseUrl : string

Base URL path (e.g., "client/orders")

Return values
array<string|int, mixed>

Pagination metadata

businessId()

Get the authenticated business ID from API context.

protected businessId() : int
Return values
int

clearOldInput()

Clear stored old input data.

protected clearOldInput() : void

error()

Return an error JSON response.

protected error(string $error, string $message[, int $status = 400 ][, array<string|int, mixed>|null $details = null ]) : void
Parameters
$error : string

Error code

$message : string

Human-readable message

$status : int = 400

HTTP status code

$details : array<string|int, mixed>|null = null

Validation errors or extra info

flash()

Set a flash message in the session.

protected flash(string $key, string $message) : void
Parameters
$key : string

Flash message key (e.g., "success", "error")

$message : string

The message text

flashOldInput()

Store current POST data as old input for form repopulation.

protected flashOldInput() : void

getJsonBody()

Parse JSON request body.

protected getJsonBody() : array<string|int, mixed>
Return values
array<string|int, mixed>

Parsed body or empty array

getPage()

Get the current page number from the query string.

protected getPage() : int
Return values
int

Page number (minimum 1)

getPaginationParams()

Get pagination parameters from query string.

protected getPaginationParams([int $defaultLimit = 25 ][, int $maxLimit = 100 ]) : array{page: int, limit: int, offset: int}
Parameters
$defaultLimit : int = 25

Default items per page

$maxLimit : int = 100

Maximum allowed limit

Return values
array{page: int, limit: int, offset: int}

json()

Send a JSON response.

protected json(mixed $data[, int $status = 200 ]) : void
Parameters
$data : mixed

Data to encode as JSON

$status : int = 200

HTTP status code

old()

Get previous form input after validation failure.

protected old(string $field[, mixed $default = '' ]) : mixed
Parameters
$field : string

The form field name

$default : mixed = ''

Default value if not found

paginationMeta()

Build pagination metadata for a response.

protected paginationMeta(int $total, int $page, int $limit) : array<string|int, mixed>
Parameters
$total : int

Total record count

$page : int

Current page

$limit : int

Items per page

Return values
array<string|int, mixed>

queryParam()

Get a query string parameter with optional default.

protected queryParam(string $key[, mixed $default = null ]) : mixed
Parameters
$key : string

Parameter name

$default : mixed = null

Default value

redirect()

Send an HTTP redirect.

protected redirect(string $url) : void
Parameters
$url : string

The URL to redirect to

requirePermission()

Require that the authenticated client user has a specific permission.

protected requirePermission(string $permission) : void

Redirects to the client dashboard with an error flash if denied.

Parameters
$permission : string

Permission key (e.g., 'menu_manage')

setCorsHeaders()

Set CORS headers for the response.

protected setCorsHeaders() : void

success()

Return a successful JSON response.

protected success(mixed $data[, int $status = 200 ][, array<string|int, mixed> $meta = [] ]) : void
Parameters
$data : mixed

Response data

$status : int = 200

HTTP status code

$meta : array<string|int, mixed> = []

Optional metadata (pagination, etc.)

url()

Generate a full URL for a given path.

protected url([string $path = '' ]) : string
Parameters
$path : string = ''

The path to append to the base URL

Return values
string

validateRequired()

Validate required fields in a data array.

protected validateRequired(array<string|int, mixed> $data, array<string|int, string> $fields) : array<string|int, string>
Parameters
$data : array<string|int, mixed>

Input data

$fields : array<string|int, string>

Required field names

Return values
array<string|int, string>

Array of missing field names (empty if valid)

view()

Render a view template wrapped in a layout.

protected view(string $template[, array<string|int, mixed> $data = [] ]) : void
Parameters
$template : string

Path to view relative to app/Views/ (e.g., "admin/dashboard")

$data : array<string|int, mixed> = []

Variables to extract into the view scope

formatMenuItem()

Format a menu item record for API output.

private formatMenuItem(array<string|int, mixed> $item) : array<string|int, mixed>
Parameters
$item : array<string|int, mixed>

Raw menu item record

Return values
array<string|int, mixed>

        
On this page

Search results