diff options
-rw-r--r-- | src/Repositories/ProgramRepository.php | 22 | ||||
-rw-r--r-- | tests/Repositories/ProgramRepositoryTest.php | 3 |
2 files changed, 20 insertions, 5 deletions
diff --git a/src/Repositories/ProgramRepository.php b/src/Repositories/ProgramRepository.php index 494b957..56884da 100644 --- a/src/Repositories/ProgramRepository.php +++ b/src/Repositories/ProgramRepository.php @@ -24,6 +24,7 @@ use EPGService\Entities\Program\CreditEntity; use EPGService\Entities\ProgramEntity; use EPGService\Environments\ServiceEnvironment; use GuzzleHttp\Client; +use GuzzleHttp\RequestOptions; use RuntimeException; use function is_array; @@ -49,11 +50,18 @@ final class ProgramRepository implements BaseRepository { private Client $client; /** + * @var string + */ + private string $week; + + /** * @param \EPGService\Environments\ServiceEnvironment $environment * @param string $channel_id + * @param string $week */ - private function __construct(ServiceEnvironment $environment, string $channel_id) { + private function __construct(ServiceEnvironment $environment, string $channel_id, string $week) { $this->channel_id = $channel_id; + $this->week = $week; $this->client = new Client([ 'base_uri' => $environment->getUrl(), @@ -63,11 +71,12 @@ final class ProgramRepository implements BaseRepository { /** * @param \EPGService\Environments\ServiceEnvironment $environment * @param string $channel_id + * @param string $week * * @return \EPGService\Repositories\ProgramRepository */ - public static function create(ServiceEnvironment $environment, string $channel_id): ProgramRepository { - return new ProgramRepository($environment, $channel_id); + public static function create(ServiceEnvironment $environment, string $channel_id, string $week): ProgramRepository { + return new ProgramRepository($environment, $channel_id, $week); } /** @@ -156,7 +165,12 @@ final class ProgramRepository implements BaseRepository { */ public function get(): array { $uri = sprintf(self::METHOD, $this->channel_id); - $response = $this->client->get($uri); + + $response = $this->client->get($uri, [ + RequestOptions::QUERY => [ + 'week' => $this->week, + ], + ]); $content = $response->getBody()->getContents(); $json = json_decode($content, true, 512, JSON_THROW_ON_ERROR); diff --git a/tests/Repositories/ProgramRepositoryTest.php b/tests/Repositories/ProgramRepositoryTest.php index f8a32d7..f943bb6 100644 --- a/tests/Repositories/ProgramRepositoryTest.php +++ b/tests/Repositories/ProgramRepositoryTest.php @@ -36,11 +36,12 @@ final class ProgramRepositoryTest extends TestCase { * @throws \Exception */ public function testGetAction(): void { + $week = date('Y-m-d', strtotime('this week')); $env = GetServiceEnvironment::get(); $channels = ChannelRepository::create($env)->get(); $channel = array_shift($channels); - foreach (ProgramRepository::create($env, $channel->id)->get() as $program) { + foreach (ProgramRepository::create($env, $channel->id, $week)->get() as $program) { /** @var \EPGService\Entities\ProgramEntity $program */ self::assertNotEmpty($program->channel_id); |