Scriptlog Docs

Scriptlog Documentation

Code reference for the Scriptlog codebase

User Tools

Site Tools


scriptlog:lib:controller:apicontroller

This is an old revision of the document!


ApiController

Layer: Controller · Source: lib/controller/ApiController.php:26 (lines 26–444)


class ApiController

API Base Controller

Base controller for all API controllers Provides common functionality for request handling, validation, and authentication

Docblock Metadata

^ Tag ^ Value ^
| ''@category'' | Controller Class |
| ''@author'' | Blogware Team |
| ''@license'' | MIT |
| ''@version'' | 1.0 |
| ''@since'' | Since Release 1.0 |

Inheritance

No parent, interface or trait. This is a root type.

Constants (0)

None.

Properties (5)

^ Visibility ^ Type ^ Name ^ Default ^ Line ^
| ''protected'' | ''(untyped)'' | ''$requestData'' | ''[];'' | 31 |
| ''protected'' | ''(untyped)'' | ''$queryParams'' | ''[];'' | 36 |
| ''protected'' | ''(untyped)'' | ''$method'' | '''GET';'' | 41 |
| ''protected'' | ''(untyped)'' | ''$headers'' | ''[];'' | 48 |
| ''protected'' | ''(untyped)'' | ''$requiresAuth'' | ''true;'' | 53 |

Methods (16)

^ Visibility ^ Method ^ Summary ^ Line ^
| public | ''__construct()'' | Constructor | 58 |
| protected | ''getHeaders()'' | Get request headers | 84 |
| protected | ''getRequestData()'' | Get request data based on HTTP method | 103 |
| protected | ''validateContentType()'' | Validate Content-Type for write requests | 152 |
| protected | ''getJsonBody()'' | Get JSON body from request | 187 |
| protected | ''authenticate()'' | Authenticate the request | 208 |
| protected | ''isAuthenticated()'' | Check if user is authenticated | 231 |
| protected | ''getUser()'' | Get authenticated user | 243 |
| protected | ''hasPermission()'' | Check if user has permission | 254 |
| protected | ''validateRequired()'' | Validate required fields | 266 |
| protected | ''validateEmail()'' | Validate email format | 288 |
| protected | ''getAppUrl()'' | Get application URL from config | 298 |
| protected | ''sanitize()'' | Sanitize string input | 309 |
| protected | ''getPagination()'' | Get pagination parameters | 324 |
| protected | ''getSorting()'' | Get sorting parameters | 344 |
| public | ''info()'' | API info endpoint | 370 |

__construct()

public function __construct()

lines 58–77 (20)

Constructor

Takes no parameters.

getHeaders()

protected function getHeaders()

lines 84–96 (13)

Get request headers

Takes no parameters.

Returns: (none declared) — array

getRequestData()

protected function getRequestData()

lines 103–138 (36)

Get request data based on HTTP method

Takes no parameters.

Returns: (none declared) — array

validateContentType()

protected function validateContentType()

lines 152–180 (29)

Validate Content-Type for write requests

Enforces application/json Content-Type for POST, PUT, PATCH, DELETE when a Content-Type header is present and is not a supported form type. Sends 415 Unsupported Media Type response on mismatch.

Override in child controllers (e.g., MediaApiController for uploads) to permit multipart/form-data.

Takes no parameters.

Returns: (none declared) — void

getJsonBody()

protected function getJsonBody()

lines 187–201 (15)

Get JSON body from request

Takes no parameters.

Returns: (none declared) — array|null

authenticate()

protected function authenticate()

lines 208–224 (17)

Authenticate the request

Takes no parameters.

Returns: (none declared) — void

isAuthenticated()

protected function isAuthenticated()

lines 231–234 (4)

Check if user is authenticated

Takes no parameters.

Returns: (none declared) — bool

getUser()

protected function getUser()

lines 243–246 (4)

Get authenticated user

Takes no parameters.

Returns: (none declared) — array|null

hasPermission()

protected function hasPermission($requiredLevels)

lines 254–257 (4)

Check if user has permission

^ Parameter ^ Type ^ Default ^ Description ^
| ''$requiredLevels'' | ''(untyped)'' | //required// | //none// |

Returns: (none declared) — bool

validateRequired()

protected function validateRequired($data, $required)

lines 266–280 (15)

Validate required fields

^ Parameter ^ Type ^ Default ^ Description ^
| ''$data'' | ''(untyped)'' | //required// | Data to validate |
| ''$required'' | ''(untyped)'' | //required// | Required fields |

Returns: (none declared) — array|null Validation errors or null if valid

validateEmail()

protected function validateEmail($email)

lines 288–291 (4)

Validate email format

^ Parameter ^ Type ^ Default ^ Description ^
| ''$email'' | ''(untyped)'' | //required// | //none// |

Returns: (none declared) — bool

getAppUrl()

protected function getAppUrl()

lines 298–301 (4)

Get application URL from config

Takes no parameters.

Returns: (none declared) — string

sanitize()

protected function sanitize($value)

lines 309–316 (8)

Sanitize string input

^ Parameter ^ Type ^ Default ^ Description ^
| ''$value'' | ''(untyped)'' | //required// | //none// |

Returns: (none declared) — array|string

getPagination()

protected function getPagination($params)

lines 324–335 (12)

Get pagination parameters

^ Parameter ^ Type ^ Default ^ Description ^
| ''$params'' | ''(untyped)'' | //required// | Query parameters |

Returns: (none declared) — array

getSorting()

protected function getSorting($params, $allowedFields = [])

lines 344–361 (18)

Get sorting parameters

^ Parameter ^ Type ^ Default ^ Description ^
| ''$params'' | ''(untyped)'' | //required// | Query parameters |
| ''$allowedFields'' | ''(untyped)'' | ''[]'' | Allowed sort fields |

Returns: (none declared) — array

info()

public function info()

lines 370–443 (74)

API info endpoint

Takes no parameters.

Returns: (none declared) — void

Imports

^ Alias ^ Fully-qualified name ^
| ''ApiAuth'' | [[scriptlog:lib:core:apiauth|''Scriptlog\Core\ApiAuth'']] |
| ''ApiHelper'' | [[scriptlog:lib:core:apihelper|''Scriptlog\Core\ApiHelper'']] |
| ''ApiHateoas'' | [[scriptlog:lib:core:apihateoas|''Scriptlog\Core\ApiHateoas'']] |
| ''ApiResponse'' | [[scriptlog:lib:core:apiresponse|''Scriptlog\Core\ApiResponse'']] |

This page is generated from source by 'tools/gendoc'. Edits will be overwritten.

scriptlog/lib/controller/apicontroller.1790413759.txt.gz · Last modified: by admin