utg / epg-client
HTTP Client for EPG API
Installs: 2 048
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 3
Requires
- firebase/php-jwt: =5.0.0
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- phpunit/phpunit: ^5
- dev-master
- 2.3+api.0.10
- 2.2.1+api.0.9
- 2.2+api.0.9
- 2.1.1+api.0.9
- 2.1+api.0.9
- 2.0+api.0.7
- 1.3.3+api.0.6
- 1.3.2+api.0.6
- 1.2.1
- 1.2
- 1.1
- 1.0
- 0.1.9
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.0
- dev-dependabot/composer/guzzlehttp/psr7-1.9.1
- dev-dependabot/composer/firebase/php-jwt-6.0.0
- dev-dependabot/composer/guzzlehttp/guzzle-6.5.8
- dev-#6
This package is auto-updated.
Last update: 2024-10-19 23:05:31 UTC
README
Installation
$ composer require utg/epg-client ^2.0
Then you need to implement \EpgClient\ConfigInterface
on you project.
It would be persistent storage for client config variables.
Get account specific entities
Client initialization by read-only api key:
/** @var \EpgClient\ConfigInterface $config */
$config = new YourConfig();
$config->set($config::API_URL, 'https://<api_url>');
$config->set($config::API_KEY, '<your_api_key>');
$client = new EpgClient\Client($config);
$client->setAuthType(EpgClient\Client::AUTH_TYPE_API_KEY);
$client->setAcceptLanguage(EpgClient\Client::LANG_UK); #optional
Channels:
/** @var EpgClient\Context\AccountChannel[] $channels */
$channels = $client->getAccountChannelResource()
->get()
->exec()
->getArrayResult();
/** @var EpgClient\Context\AccountChannel $channel */
$channel = $client->getAccountChannelResource()
->get($channelId)
->exec()
->getSingleResult();
Categories:
/** @var EpgClient\Context\AccountCategory[] $categories */
$categories = $client->getAccountCategoryResource()
->get()
->exec()
->getArrayResult();
/** @var EpgClient\Context\AccountCategory $categorie */
$category = $client->getAccountCategoryResource()
->get($categoryId)
->exec()
->getSingleResult();
Genres:
/** @var EpgClient\Context\AccountGenre[] $genres */
$genres = $client->getAccountGenreResource()
->get()
->exec()
->getArrayResult();
/** @var EpgClient\Context\AccountGenre $genre */
$genre = $client->getAccountGenreResource()
->get($genreId)
->exec()
->getSingleResult();
Programs:
/**
* You can get program collection by instance of Channel
*
* @var EpgClient\Context\Channel $channel
* @var EpgClient\Context\AccountProgram[] $programs
*/
$programs = $client->getAccountProgramResource()
->getByChannel($channel)
->setPeriod(AccountProgramResource::PERIOD_NOW)
->exec()
->getArrayResult();
/**
* Or you cat get program collection by channel id
*
* @var string $channelId
* @var EpgClient\Context\AccountProgram[] $programs
*/
$programs = $client->getAccountProgramResource()
->getByChannelId($channelId)
->setPeriod(AccountProgramResource::PERIOD_TODAY)
->exec()
->getArrayResult();
/**
* Search program by title
*/
$programs = $client->getAccountProgramResource()
->getByTitle('Program title')
->setPeriod(AccountProgramResource::PERIOD_MONTH)
->limit(10)
->exec()
->getArrayResult();
/**
* @var string $programId
* @var EpgClient\Context\AccountProgram $program
*/
$program = $client->getAccountProgramResource()
->get($programId)
->exec()
->getSingleResult();
Manage entities
Client initialization by login/password
/** @var \EpgClient\ConfigInterface $config */
$config = new YourConfig();
$config->set($config::API_URL, 'https://<api_url>');
$config->set($config::API_ADMIN, '<your_admin_user>');
$config->set($config::API_PASSWORD, '<your_admin_password>');
$client = new EpgClient\Client($config);
# Optional client settings
$client->setAcceptLanguage(EpgClient\Client::LANG_UK);
Channels (full example):
/** @var EpgClient\Context\AccountChannel[] $channels */
$channels = $client->getAccountResource()
->getChannels()
->disablePagination() # optional: pagination disable
->withGroup(EpgClient\Resource\ChannelResource::GROUP_TRANSLATIONS) # optional: translations, images, ...
->setLanguage(EpgClient\Client::LANG_UK) # optional: set language only for one request
->exec()
->getArrayResult();
Categories (short example):
/** @var EpgClient\Context\AccountCategory[] $categories */
$categories = $client->getAccountResource()
->getCategories()
->exec()
->getArrayResult();
Genres:
/** @var EpgClient\Context\AccountGenre[] $genres */
$genres = $client->getAccountResource()
->getGenres()
->exec()
->getArrayResult();