AdminApiHandler
in package
implements
ApiRoutableInterface
uses
ApiRoutableTrait
API handler for admin-related operations.
Merges functionality from SettingsHandler and StatisticsHandler.
Tags
Table of Contents
Interfaces
- ApiRoutableInterface
- Interface for API handlers that participate in route dispatch.
Properties
Methods
- __construct() : mixed
- Constructor.
- formatMediaFiles() : array{base_path: string, paths?: string[], folders?: string[], error?: string}
- Format response for media files list.
-
formatSaveSetting()
: array{error?: string, message?: string, text_count?: int, last_text?: array
|null} - Format response for saving a setting.
-
formatTextsStatistics()
: array<string, array{total: int, saved: int, unknown: int, unknownPercent: int, statusCounts: array
}> - Format response for texts statistics.
- formatThemePath() : array{theme_path: string}
- Format response for getting theme path.
- getFrequencyStatistics() : array{languages: array, totals: array}
- Get frequency statistics.
- getIntensityStatistics() : array{languages: array, totals: array}
- Get intensity statistics.
- getMediaFiles() : array{base_path: string, paths?: string[], folders?: string[], error?: string}
- List the audio and video files in the media folder.
- getServerData() : array<string|int, mixed>
- Get server data.
- getTextsStatistics() : array<string|int, mixed>
- Return statistics about a group of texts.
- getThemePath() : array{theme_path: string}
- Get the file path using the current theme.
- routeDelete() : JsonResponse
- routeGet() : JsonResponse
- Handle a GET request for this resource.
- routePost() : JsonResponse
- Handle a POST request for this resource.
- routePut() : JsonResponse
-
saveSetting()
: array{error?: string, message?: string, text_count?: int, last_text?: array
|null} - Save a setting to the database.
- frag() : string
- Extract a fragment from the fragments array.
- clearSessionSettings() : void
- Clear session settings when changing language.
- getLastTextForLanguage() : array<string, mixed>|null
- Get the last text information for a specific language.
- getTextCountForLanguage() : int
- Get the count of active (non-archived) texts for a language.
Properties
$adminFacade
private
AdminFacade
$adminFacade
Methods
__construct()
Constructor.
public
__construct(AdminFacade $adminFacade) : mixed
Parameters
- $adminFacade : AdminFacade
-
Admin facade
formatMediaFiles()
Format response for media files list.
public
formatMediaFiles() : array{base_path: string, paths?: string[], folders?: string[], error?: string}
Return values
array{base_path: string, paths?: string[], folders?: string[], error?: string}formatSaveSetting()
Format response for saving a setting.
public
formatSaveSetting(string $key, string $value) : array{error?: string, message?: string, text_count?: int, last_text?: array|null}
Parameters
- $key : string
-
Setting key
- $value : string
-
Setting value
Return values
array{error?: string, message?: string, text_count?: int, last_text?: arrayformatTextsStatistics()
Format response for texts statistics.
public
formatTextsStatistics(string $textsId) : array<string, array{total: int, saved: int, unknown: int, unknownPercent: int, statusCounts: array}>
Transforms the raw statistics data into a format expected by the frontend:
- total: unique word count
- saved: count of words with any status (1-5, 98, 99)
- unknown: count of words without a saved status
- unknownPercent: percentage of unknown words
- statusCounts: word counts by status
Parameters
- $textsId : string
-
Comma-separated text IDs
Return values
array<string, array{total: int, saved: int, unknown: int, unknownPercent: int, statusCounts: arrayformatThemePath()
Format response for getting theme path.
public
formatThemePath(string $path) : array{theme_path: string}
Parameters
- $path : string
-
Relative path
Return values
array{theme_path: string}getFrequencyStatistics()
Get frequency statistics.
public
getFrequencyStatistics() : array{languages: array, totals: array}
Return values
array{languages: array, totals: array}getIntensityStatistics()
Get intensity statistics.
public
getIntensityStatistics() : array{languages: array, totals: array}
Return values
array{languages: array, totals: array}getMediaFiles()
List the audio and video files in the media folder.
public
getMediaFiles() : array{base_path: string, paths?: string[], folders?: string[], error?: string}
Return values
array{base_path: string, paths?: string[], folders?: string[], error?: string}getServerData()
Get server data.
public
getServerData() : array<string|int, mixed>
Return values
array<string|int, mixed> —Server information
getTextsStatistics()
Return statistics about a group of texts.
public
getTextsStatistics(string $textsId) : array<string|int, mixed>
Parameters
- $textsId : string
-
Comma-separated text IDs
Return values
array<string|int, mixed> —Text word count statistics
getThemePath()
Get the file path using the current theme.
public
getThemePath(string $path) : array{theme_path: string}
Parameters
- $path : string
-
Relative filepath using theme
Return values
array{theme_path: string}routeDelete()
public
routeDelete(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
- $fragments : array<string|int, mixed>
- $params : array<string|int, mixed>
Return values
JsonResponserouteGet()
Handle a GET request for this resource.
public
routeGet(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
- $fragments : array<string|int, mixed>
-
URL path segments (resource name already consumed)
- $params : array<string|int, mixed>
-
Query parameters
Return values
JsonResponseroutePost()
Handle a POST request for this resource.
public
routePost(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
- $fragments : array<string|int, mixed>
-
URL path segments (resource name already consumed)
- $params : array<string|int, mixed>
-
POST/JSON body parameters
Return values
JsonResponseroutePut()
public
routePut(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
- $fragments : array<string|int, mixed>
- $params : array<string|int, mixed>
Return values
JsonResponsesaveSetting()
Save a setting to the database.
public
saveSetting(string $key, string $value) : array{error?: string, message?: string, text_count?: int, last_text?: array|null}
Parameters
- $key : string
-
Setting name
- $value : string
-
Setting value
Return values
array{error?: string, message?: string, text_count?: int, last_text?: arrayfrag()
Extract a fragment from the fragments array.
protected
frag(array<int, string> $fragments, int $index) : string
Parameters
- $fragments : array<int, string>
-
The URL path fragments
- $index : int
-
The index to extract
Return values
string —The fragment at the index, or empty string if not present
clearSessionSettings()
Clear session settings when changing language.
private
clearSessionSettings() : void
Note: Pagination/filter state is now stored in URL parameters, so session clearing is no longer needed. This method is kept for backwards compatibility but is now a no-op.
getLastTextForLanguage()
Get the last text information for a specific language.
private
getLastTextForLanguage(int $languageId) : array<string, mixed>|null
Parameters
- $languageId : int
-
Language ID
Return values
array<string, mixed>|null —Last text data or null if none exists
getTextCountForLanguage()
Get the count of active (non-archived) texts for a language.
private
getTextCountForLanguage(int $languageId) : int
Parameters
- $languageId : int
-
Language ID
Return values
int —Number of texts