DictionaryApiHandler
in package
implements
ApiRoutableInterface
uses
ApiRoutableTrait
API handler for dictionary operations.
Provides endpoints for:
- Listing dictionaries for a language
- Creating and deleting dictionaries
- Importing dictionary entries from files
- Looking up terms
Tags
Table of Contents
Interfaces
- ApiRoutableInterface
- Interface for API handlers that participate in route dispatch.
Properties
Methods
- __construct() : mixed
- Create a new DictionaryApiHandler.
- addEntry() : array{success: bool, entry_id?: int, error?: string}
- Add a single entry to a dictionary.
- clearEntries() : array{success: bool, deleted?: int, error?: string}
- Clear all entries from a dictionary (for re-import).
- createDictionary() : array{success: bool, dictionary?: array, error?: string}
- Create a new dictionary.
- deleteDictionary() : array{success: bool, error?: string}
- Delete a dictionary.
- deleteEntry() : array{success: bool, error?: string}
- Delete an entry.
- formatAddEntry() : array<string|int, mixed>
- Format response for adding an entry.
- formatClearEntries() : array<string|int, mixed>
- Format response for clearing entries.
- formatCreateDictionary() : array<string|int, mixed>
- Format response for creating a dictionary.
- formatDeleteDictionary() : array<string|int, mixed>
- Format response for deleting a dictionary.
- formatGetDictionaries() : array<string|int, mixed>
- Format response for getting dictionaries.
- formatGetDictionary() : array<string|int, mixed>
- Format response for getting a single dictionary.
- formatGetEntries() : array<string|int, mixed>
- Format response for getting entries.
- formatImport() : array<string|int, mixed>
- Format response for import.
- formatLookup() : array<string|int, mixed>
- Format response for term lookup.
- formatPreview() : array<string|int, mixed>
- Format response for preview.
- formatUpdateDictionary() : array<string|int, mixed>
- Format response for updating a dictionary.
- getDictionaries() : array{dictionaries: array, mode: int}
- Get all dictionaries for a language.
- getDictionary() : array<string|int, mixed>
- Get a single dictionary by ID.
- getEntries() : array{entries?: array, pagination?: array, error?: string}
- Get entries for a dictionary (paginated).
- importFile() : array{success: bool, imported?: int, error?: string}
- Import entries into a dictionary from uploaded file.
- lookup() : array{results: array, mode: int}
- Look up a term in local dictionaries.
- lookupPrefix() : array{results: array}
- Look up terms with prefix matching (autocomplete).
- previewFile() : array{success: bool, entries?: array, structure?: array, error?: string}
- Preview entries from a file before import.
- routeDelete() : JsonResponse
- Handle a DELETE request for this resource.
- routeGet() : JsonResponse
- Handle a GET request for this resource.
- routePost() : JsonResponse
- Handle a POST request for this resource.
- routePut() : JsonResponse
- Handle a PUT request for this resource.
- updateDictionary() : array{success: bool, dictionary?: array, error?: string}
- Update a dictionary.
- updateEntry() : array{success: bool, error?: string}
- Update an entry.
- frag() : string
- Extract a fragment from the fragments array.
- formatDictionary() : array<string|int, mixed>
- Format a LocalDictionary entity for API response.
Properties
$dictService
private
LocalDictionaryService
$dictService
$facade
private
DictionaryFacade
$facade
Methods
__construct()
Create a new DictionaryApiHandler.
public
__construct([DictionaryFacade|null $facade = null ]) : mixed
Parameters
- $facade : DictionaryFacade|null = null
-
Facade instance (optional for BC)
addEntry()
Add a single entry to a dictionary.
public
addEntry(int $dictId, array<string|int, mixed> $data) : array{success: bool, entry_id?: int, error?: string}
Parameters
- $dictId : int
-
Dictionary ID
- $data : array<string|int, mixed>
-
Entry data:
- term: string (required)
- definition: string (required)
- reading: string (optional)
- pos: string (optional)
Return values
array{success: bool, entry_id?: int, error?: string}clearEntries()
Clear all entries from a dictionary (for re-import).
public
clearEntries(int $dictId) : array{success: bool, deleted?: int, error?: string}
Parameters
- $dictId : int
-
Dictionary ID
Return values
array{success: bool, deleted?: int, error?: string}createDictionary()
Create a new dictionary.
public
createDictionary(array<string|int, mixed> $data) : array{success: bool, dictionary?: array, error?: string}
Parameters
- $data : array<string|int, mixed>
-
Dictionary data:
- language_id: int (required)
- name: string (required)
- description: string (optional)
- source_format: string (optional, default: 'csv')
Return values
array{success: bool, dictionary?: array, error?: string}deleteDictionary()
Delete a dictionary.
public
deleteDictionary(int $dictId) : array{success: bool, error?: string}
Parameters
- $dictId : int
-
Dictionary ID
Return values
array{success: bool, error?: string}deleteEntry()
Delete an entry.
public
deleteEntry(int $entryId) : array{success: bool, error?: string}
Parameters
- $entryId : int
-
Entry ID
Return values
array{success: bool, error?: string}formatAddEntry()
Format response for adding an entry.
public
formatAddEntry(int $dictId, array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
- $dictId : int
-
Dictionary ID
- $data : array<string|int, mixed>
-
Entry data
Return values
array<string|int, mixed>formatClearEntries()
Format response for clearing entries.
public
formatClearEntries(int $dictId) : array<string|int, mixed>
Parameters
- $dictId : int
-
Dictionary ID
Return values
array<string|int, mixed>formatCreateDictionary()
Format response for creating a dictionary.
public
formatCreateDictionary(array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
- $data : array<string|int, mixed>
-
Dictionary data
Return values
array<string|int, mixed>formatDeleteDictionary()
Format response for deleting a dictionary.
public
formatDeleteDictionary(int $dictId) : array<string|int, mixed>
Parameters
- $dictId : int
-
Dictionary ID
Return values
array<string|int, mixed>formatGetDictionaries()
Format response for getting dictionaries.
public
formatGetDictionaries(int $langId) : array<string|int, mixed>
Parameters
- $langId : int
-
Language ID
Return values
array<string|int, mixed>formatGetDictionary()
Format response for getting a single dictionary.
public
formatGetDictionary(int $dictId) : array<string|int, mixed>
Parameters
- $dictId : int
-
Dictionary ID
Return values
array<string|int, mixed>formatGetEntries()
Format response for getting entries.
public
formatGetEntries(int $dictId, array<string|int, mixed> $params) : array<string|int, mixed>
Parameters
- $dictId : int
-
Dictionary ID
- $params : array<string|int, mixed>
-
Pagination params
Return values
array<string|int, mixed>formatImport()
Format response for import.
public
formatImport(int $dictId, array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
- $dictId : int
-
Dictionary ID
- $data : array<string|int, mixed>
-
Import data
Return values
array<string|int, mixed>formatLookup()
Format response for term lookup.
public
formatLookup(int $langId, string $term) : array<string|int, mixed>
Parameters
- $langId : int
-
Language ID
- $term : string
-
Term to look up
Return values
array<string|int, mixed>formatPreview()
Format response for preview.
public
formatPreview(array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
- $data : array<string|int, mixed>
-
Preview data
Return values
array<string|int, mixed>formatUpdateDictionary()
Format response for updating a dictionary.
public
formatUpdateDictionary(int $dictId, array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
- $dictId : int
-
Dictionary ID
- $data : array<string|int, mixed>
-
Dictionary data
Return values
array<string|int, mixed>getDictionaries()
Get all dictionaries for a language.
public
getDictionaries(int $langId) : array{dictionaries: array, mode: int}
Parameters
- $langId : int
-
Language ID
Return values
array{dictionaries: array, mode: int}getDictionary()
Get a single dictionary by ID.
public
getDictionary(int $dictId) : array<string|int, mixed>
Parameters
- $dictId : int
-
Dictionary ID
Return values
array<string|int, mixed> —Dictionary data or error
getEntries()
Get entries for a dictionary (paginated).
public
getEntries(int $dictId[, array<string|int, mixed> $params = [] ]) : array{entries?: array, pagination?: array, error?: string}
Parameters
- $dictId : int
-
Dictionary ID
- $params : array<string|int, mixed> = []
-
Pagination params:
- page: int (default: 1)
- per_page: int (default: 50)
Return values
array{entries?: array, pagination?: array, error?: string}importFile()
Import entries into a dictionary from uploaded file.
public
importFile(int $dictId, array<string|int, mixed> $data) : array{success: bool, imported?: int, error?: string}
Parameters
- $dictId : int
-
Dictionary ID
- $data : array<string|int, mixed>
-
Import data:
- file_path: string (temporary file path)
- format: string (csv, json, stardict)
- options: array (format-specific options)
Return values
array{success: bool, imported?: int, error?: string}lookup()
Look up a term in local dictionaries.
public
lookup(int $langId, string $term) : array{results: array, mode: int}
Parameters
- $langId : int
-
Language ID
- $term : string
-
Term to look up
Return values
array{results: array, mode: int}lookupPrefix()
Look up terms with prefix matching (autocomplete).
public
lookupPrefix(int $langId, string $prefix[, int $limit = 10 ]) : array{results: array}
Parameters
- $langId : int
-
Language ID
- $prefix : string
-
Term prefix
- $limit : int = 10
-
Max results
Return values
array{results: array}previewFile()
Preview entries from a file before import.
public
previewFile(array<string|int, mixed> $data) : array{success: bool, entries?: array, structure?: array, error?: string}
Parameters
- $data : array<string|int, mixed>
-
Preview data:
- file_path: string
- format: string
- limit: int (default: 10)
- options: array
Return values
array{success: bool, entries?: array, structure?: array, error?: string}routeDelete()
Handle a DELETE request for this resource.
public
routeDelete(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/body parameters
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()
Handle a PUT request for this resource.
public
routePut(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>
-
JSON body parameters
Return values
JsonResponseupdateDictionary()
Update a dictionary.
public
updateDictionary(int $dictId, array<string|int, mixed> $data) : array{success: bool, dictionary?: array, error?: string}
Parameters
- $dictId : int
-
Dictionary ID
- $data : array<string|int, mixed>
-
Dictionary data
Return values
array{success: bool, dictionary?: array, error?: string}updateEntry()
Update an entry.
public
updateEntry(int $entryId, array<string|int, mixed> $data) : array{success: bool, error?: string}
Parameters
- $entryId : int
-
Entry ID
- $data : array<string|int, mixed>
-
Entry data
Return values
array{success: bool, error?: string}frag()
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
formatDictionary()
Format a LocalDictionary entity for API response.
private
formatDictionary(LocalDictionary $dictionary) : array<string|int, mixed>
Parameters
- $dictionary : LocalDictionary
-
Dictionary entity
Return values
array<string|int, mixed> —Formatted dictionary data