FeedApiHandler
in package
implements
ApiRoutableInterface
uses
ApiRoutableTrait
API handler for feed-related operations.
Provides REST API endpoints for feed management, including CRUD operations, article management, and import.
Tags
Table of Contents
Interfaces
- ApiRoutableInterface
- Interface for API handlers that participate in route dispatch.
Properties
Methods
- __construct() : mixed
- createFeed() : array{success: bool, feed?: array, error?: string}
- Create a new feed.
- deleteArticles() : array{success: bool, deleted: int}
- Delete articles.
- deleteFeeds() : array{success: bool, deleted: int}
- Delete feeds.
- detectFeed() : array<string|int, mixed>|null
- Detect feed format and parse.
- formatCreateFeed() : array<string|int, mixed>
- Format response for creating feed.
- formatDeleteArticles() : array<string|int, mixed>
- Format response for deleting articles.
- formatDeleteFeeds() : array<string|int, mixed>
- Format response for deleting feeds.
- formatGetArticles() : array<string|int, mixed>
- Format response for getting articles.
- formatGetFeed() : array<string|int, mixed>
- Format response for getting single feed.
- formatGetFeedList() : array<string|int, mixed>
- Format response for getting feed list.
- formatImportArticles() : array<string|int, mixed>
- Format response for importing articles.
- formatLoadFeed() : array{success?: true, message?: string, imported?: int, duplicates?: int, error?: string}
- Format response for loading a feed.
- formatResetErrorArticles() : array<string|int, mixed>
- Format response for resetting error articles.
- formatUpdateFeed() : array<string|int, mixed>
- Format response for updating feed.
- getArticles() : array{articles?: array, pagination?: array, feed?: array, error?: string}
- Get articles for a feed.
- getFeed() : array<string|int, mixed>
- Get a single feed by ID.
- getFeedList() : array{feeds: array, pagination: array, languages: array}
- Get list of feeds with pagination and filtering.
- getFeedLoadConfig() : array<string|int, mixed>
- Get feed load configuration for frontend.
- getFeedResult() : string
- Update the feeds database and return a result message.
- getFeeds() : array<string|int, mixed>
- Get list of feeds (simple version).
- getFeedsList() : array{0: int, 1: int}
- Get the list of feeds and insert them into the database.
- getFeedsNeedingAutoUpdate() : array<string|int, mixed>
- Get feeds needing auto-update.
- importArticles() : array{success: bool, imported: int, errors: array}
- Import articles as texts.
- loadFeed() : array{success?: true, message?: string, imported?: int, duplicates?: int, error?: string}
- Load a feed and return result.
- parseFeed() : array<string|int, mixed>|null
- Parse an RSS feed for preview.
- resetErrorArticles() : array{success: bool, reset: int}
- Reset error articles (remove leading space from links).
- 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.
- updateFeed() : array{success: bool, feed?: array, error?: string}
- Update an existing feed.
- frag() : string
- Extract a fragment from the fragments array.
- formatArticleRecord() : array<string|int, mixed>
- Format an article record for API response.
- formatFeedRecord() : array<string|int, mixed>
- Format a feed record for API response.
- getLanguagesForSelect() : array<string|int, mixed>
- Get languages for filter dropdown.
Properties
$feedFacade
private
FeedFacade
$feedFacade
Methods
__construct()
public
__construct(FeedFacade $feedFacade) : mixed
Parameters
- $feedFacade : FeedFacade
createFeed()
Create a new feed.
public
createFeed(array<string|int, mixed> $data) : array{success: bool, feed?: array, error?: string}
Parameters
- $data : array<string|int, mixed>
-
Feed data
Return values
array{success: bool, feed?: array, error?: string}deleteArticles()
Delete articles.
public
deleteArticles(int $feedId[, array<string|int, mixed> $articleIds = [] ]) : array{success: bool, deleted: int}
Parameters
- $feedId : int
-
Feed ID
- $articleIds : array<string|int, mixed> = []
-
Article IDs to delete (empty = all)
Return values
array{success: bool, deleted: int}deleteFeeds()
Delete feeds.
public
deleteFeeds(array<string|int, mixed> $feedIds) : array{success: bool, deleted: int}
Parameters
- $feedIds : array<string|int, mixed>
-
Array of feed IDs to delete
Return values
array{success: bool, deleted: int}detectFeed()
Detect feed format and parse.
public
detectFeed(string $sourceUri) : array<string|int, mixed>|null
Parameters
- $sourceUri : string
-
Feed URL
Return values
array<string|int, mixed>|null —Feed data with metadata or null on error
formatCreateFeed()
Format response for creating feed.
public
formatCreateFeed(array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
- $data : array<string|int, mixed>
-
Feed data
Return values
array<string|int, mixed> —Creation result
formatDeleteArticles()
Format response for deleting articles.
public
formatDeleteArticles(int $feedId[, array<string|int, mixed> $articleIds = [] ]) : array<string|int, mixed>
Parameters
- $feedId : int
-
Feed ID
- $articleIds : array<string|int, mixed> = []
-
Article IDs (empty = all)
Return values
array<string|int, mixed> —Deletion result
formatDeleteFeeds()
Format response for deleting feeds.
public
formatDeleteFeeds(array<string|int, mixed> $feedIds) : array<string|int, mixed>
Parameters
- $feedIds : array<string|int, mixed>
-
Feed IDs
Return values
array<string|int, mixed> —Deletion result
formatGetArticles()
Format response for getting articles.
public
formatGetArticles(array<string|int, mixed> $params) : array<string|int, mixed>
Parameters
- $params : array<string|int, mixed>
-
Filter parameters
Return values
array<string|int, mixed> —Articles with pagination
formatGetFeed()
Format response for getting single feed.
public
formatGetFeed(int $feedId) : array<string|int, mixed>
Parameters
- $feedId : int
-
Feed ID
Return values
array<string|int, mixed> —Feed data
formatGetFeedList()
Format response for getting feed list.
public
formatGetFeedList(array<string|int, mixed> $params) : array<string|int, mixed>
Parameters
- $params : array<string|int, mixed>
-
Filter parameters
Return values
array<string|int, mixed> —Feed list with pagination
formatImportArticles()
Format response for importing articles.
public
formatImportArticles(array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
- $data : array<string|int, mixed>
-
Import data
Return values
array<string|int, mixed> —Import result
formatLoadFeed()
Format response for loading a feed.
public
formatLoadFeed(string $name, int $feedId, string $sourceUri, string $options) : array{success?: true, message?: string, imported?: int, duplicates?: int, error?: string}
Parameters
- $name : string
-
Feed name
- $feedId : int
-
Feed ID
- $sourceUri : string
-
Feed source URI
- $options : string
-
Feed options
Return values
array{success?: true, message?: string, imported?: int, duplicates?: int, error?: string}formatResetErrorArticles()
Format response for resetting error articles.
public
formatResetErrorArticles(int $feedId) : array<string|int, mixed>
Parameters
- $feedId : int
-
Feed ID
Return values
array<string|int, mixed> —Reset result
formatUpdateFeed()
Format response for updating feed.
public
formatUpdateFeed(int $feedId, array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
- $feedId : int
-
Feed ID
- $data : array<string|int, mixed>
-
Feed data
Return values
array<string|int, mixed> —Update result
getArticles()
Get articles for a feed.
public
getArticles(array<string|int, mixed> $params) : array{articles?: array, pagination?: array, feed?: array, error?: string}
Parameters
- $params : array<string|int, mixed>
-
Parameters:
- feed_id: int (required)
- query: string (search)
- page: int
- per_page: int
- sort: int (1=date desc, 2=date asc, 3=title)
Return values
array{articles?: array, pagination?: array, feed?: array, error?: string}getFeed()
Get a single feed by ID.
public
getFeed(int $feedId) : array<string|int, mixed>
Parameters
- $feedId : int
-
Feed ID
Return values
array<string|int, mixed> —Feed data or error
getFeedList()
Get list of feeds with pagination and filtering.
public
getFeedList(array<string|int, mixed> $params) : array{feeds: array, pagination: array, languages: array}
Parameters
- $params : array<string|int, mixed>
-
Filter parameters:
- lang: int|null (language ID filter)
- query: string|null (search query)
- page: int (default 1)
- per_page: int (default 50)
- sort: int (1=name, 2=update desc, 3=update asc)
Return values
array{feeds: array, pagination: array, languages: array}getFeedLoadConfig()
Get feed load configuration for frontend.
public
getFeedLoadConfig(int $feedId[, bool $checkAutoupdate = false ]) : array<string|int, mixed>
Parameters
- $feedId : int
-
Feed ID
- $checkAutoupdate : bool = false
-
Check auto-update feeds
Return values
array<string|int, mixed> —Configuration
getFeedResult()
Update the feeds database and return a result message.
public
getFeedResult(int $importedFeed, int $nif, string $nfname, int $nfid, string $nfoptions) : string
Parameters
- $importedFeed : int
-
Number of imported feeds
- $nif : int
-
Number of duplicated feeds
- $nfname : string
-
News feed name
- $nfid : int
-
News feed ID
- $nfoptions : string
-
News feed options
Return values
string —Result message
getFeeds()
Get list of feeds (simple version).
public
getFeeds([int|null $languageId = null ]) : array<string|int, mixed>
Parameters
- $languageId : int|null = null
-
Language ID filter (null for all)
Return values
array<string|int, mixed> —Array of feeds
getFeedsList()
Get the list of feeds and insert them into the database.
public
getFeedsList(array<string|int, array<string, string>> $feed, int $nfid) : array{0: int, 1: int}
Parameters
- $feed : array<string|int, array<string, string>>
-
A feed with articles
- $nfid : int
-
News feed ID
Return values
array{0: int, 1: int} —Number of imported feeds and number of duplicated feeds.
getFeedsNeedingAutoUpdate()
Get feeds needing auto-update.
public
getFeedsNeedingAutoUpdate() : array<string|int, mixed>
Return values
array<string|int, mixed> —Array of feeds
importArticles()
Import articles as texts.
public
importArticles(array<string|int, mixed> $data) : array{success: bool, imported: int, errors: array}
Parameters
- $data : array<string|int, mixed>
-
Import data:
- article_ids: array of article IDs
Return values
array{success: bool, imported: int, errors: array}loadFeed()
Load a feed and return result.
public
loadFeed(string $nfname, int $nfid, string $nfsourceuri, string $nfoptions) : array{success?: true, message?: string, imported?: int, duplicates?: int, error?: string}
Parameters
- $nfname : string
-
Newsfeed name
- $nfid : int
-
News feed ID
- $nfsourceuri : string
-
News feed source
- $nfoptions : string
-
News feed options
Return values
array{success?: true, message?: string, imported?: int, duplicates?: int, error?: string}parseFeed()
Parse an RSS feed for preview.
public
parseFeed(string $sourceUri[, string $articleSection = '' ]) : array<string|int, mixed>|null
Parameters
- $sourceUri : string
-
Feed URL
- $articleSection : string = ''
-
Article section tag
Return values
array<string|int, mixed>|null —Feed data or null on error
resetErrorArticles()
Reset error articles (remove leading space from links).
public
resetErrorArticles(int $feedId) : array{success: bool, reset: int}
Parameters
- $feedId : int
-
Feed ID
Return values
array{success: bool, reset: int}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
JsonResponseupdateFeed()
Update an existing feed.
public
updateFeed(int $feedId, array<string|int, mixed> $data) : array{success: bool, feed?: array, error?: string}
Parameters
- $feedId : int
-
Feed ID
- $data : array<string|int, mixed>
-
Feed data
Return values
array{success: bool, feed?: array, 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
formatArticleRecord()
Format an article record for API response.
private
formatArticleRecord(array<string|int, mixed> $row) : array<string|int, mixed>
Parameters
- $row : array<string|int, mixed>
-
Database record
Return values
array<string|int, mixed> —Formatted article data
formatFeedRecord()
Format a feed record for API response.
private
formatFeedRecord(array<string|int, mixed> $row) : array<string|int, mixed>
Parameters
- $row : array<string|int, mixed>
-
Database record
Return values
array<string|int, mixed> —Formatted feed data
getLanguagesForSelect()
Get languages for filter dropdown.
private
getLanguagesForSelect() : array<string|int, mixed>
Return values
array<string|int, mixed> —Array of language options