Skip to content

Commit

Permalink
Merge pull request #57 from cultuurnet/feature/WID-230-add-videos
Browse files Browse the repository at this point in the history
WID-230 Add support for videos
  • Loading branch information
LucWollants committed Nov 17, 2021
2 parents 63c9175 + 789abd9 commit dc30d03
Show file tree
Hide file tree
Showing 6 changed files with 147 additions and 4 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: ['7.1', '7.2', '7.3', '7.4']
php-versions: ['7.4']
name: PHP ${{ matrix.php-versions }}
steps:
- name: 📤 Checkout project
Expand Down Expand Up @@ -36,7 +36,7 @@ jobs:
- name: 🐘 Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.1
php-version: 7.4
tools: composer

- name: 📦 Install dependencies
Expand All @@ -55,7 +55,7 @@ jobs:
- name: 🐘 Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.1
php-version: 7.4
tools: composer

- name: 📦 Install dependencies
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Then, set up the search-v3 `SearchClient` like this:
```php
$searchClient = new CultuurNet\SearchV3\SearchClient(
$httpClient, // HTTP client set up in the previous step
new CultuurNet\SearchV3\Serializer() // Built-in serializer to deserialize the JSON responses
new CultuurNet\SearchV3\Serializer\Serializer() // Built-in serializer to deserialize the JSON responses
);
```

Expand Down
22 changes: 22 additions & 0 deletions src/ValueObjects/Offer.php
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,12 @@ abstract class Offer
*/
private $mediaObjects = [];

/**
* @var Video[]
* @Type("array<CultuurNet\SearchV3\ValueObjects\Video>")
*/
private $videos = [];

/**
* @var Organizer|null
* @Type("CultuurNet\SearchV3\ValueObjects\Organizer")
Expand Down Expand Up @@ -350,6 +356,22 @@ public function setMediaObjects(array $mediaObjects): void
$this->mediaObjects = $mediaObjects;
}

/**
* @return Video[]
*/
public function getVideos(): array
{
return $this->videos;
}

/**
* @param Video[] $videos
*/
public function setVideos(array $videos): void
{
$this->videos = $videos;
}

public function getMainMediaObject(): ?MediaObject
{
$mediaObjects = $this->getMediaObjects();
Expand Down
90 changes: 90 additions & 0 deletions src/ValueObjects/Video.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<?php

declare(strict_types=1);

namespace CultuurNet\SearchV3\ValueObjects;

use JMS\Serializer\Annotation\Type;

final class Video
{
/**
* @var string
* @Type("string")
*/
private $id;

/**
* @var string
* @Type("string")
*/
private $language;

/**
* @var string
* @Type("string")
*/
private $url;

/**
* @var string
* @Type("string")
*/
private $embedUrl;

/**
* @var string|null
* @Type("string")
*/
private $copyrightHolder;

public function getId(): string
{
return $this->id;
}

public function setId(string $id): void
{
$this->id = $id;
}

public function getLanguage(): string
{
return $this->language;
}

public function setLanguage(string $language): void
{
$this->language = $language;
}

public function getUrl(): string
{
return $this->url;
}

public function setUrl(string $url): void
{
$this->url = $url;
}

public function getEmbedUrl(): string
{
return $this->embedUrl;
}

public function setEmbedUrl(string $embedUrl): void
{
$this->embedUrl = $embedUrl;
}

public function getCopyrightHolder(): ?string
{
return $this->copyrightHolder;
}

public function setCopyrightHolder(?string $copyrightHolder): void
{
$this->copyrightHolder = $copyrightHolder;
}
}
15 changes: 15 additions & 0 deletions test/Serializer/SerializerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
use CultuurNet\SearchV3\ValueObjects\Term;
use CultuurNet\SearchV3\ValueObjects\TranslatedAddress;
use CultuurNet\SearchV3\ValueObjects\TranslatedString;
use CultuurNet\SearchV3\ValueObjects\Video;
use PHPUnit\Framework\TestCase;

final class SerializerTest extends TestCase
Expand Down Expand Up @@ -200,6 +201,20 @@ public function testDeserializeMethodForResultsWithEmbedAndFacets(): void
$event->setMediaObjects([$mediaObject]);
$event->setImage('https://io.uitdatabank.be/images/e65ef366-65a0-4172-a0fe-6844655ad6b9.jpeg');

$video1 = new Video();
$video1->setId('6d787098-3082-4a0f-a510-1df4597ae02f');
$video1->setUrl('https://www.youtube.com/watch?v=cEItmb_a20D');
$video1->setEmbedUrl('https://www.youtube.com/embed/cEItmb_a20D');
$video1->setLanguage('nl');
$video1->setCopyrightHolder('Copyright afgehandeld door YouTube');
$video2 = new Video();
$video2->setId('192a07d9-049b-4c2a-bc94-e46b7a557529');
$video2->setUrl('https://www.youtube.com/watch?v=sXYtmb_q19C');
$video2->setEmbedUrl('https://www.youtube.com/embed/sXYtmb_q19C');
$video2->setLanguage('fr');
$video2->setCopyrightHolder('publiq');
$event->setVideos([$video1, $video2]);

$priceInfo = new PriceInfo();
$priceInfo->setCategory('base');
$priceInfo->setName(new TranslatedString([
Expand Down
16 changes: 16 additions & 0 deletions test/Serializer/data/search-with-embed-and-facets.json
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,22 @@
}
],
"image": "https://io.uitdatabank.be/images/e65ef366-65a0-4172-a0fe-6844655ad6b9.jpeg",
"videos": [
{
"id": "6d787098-3082-4a0f-a510-1df4597ae02f",
"url": "https://www.youtube.com/watch?v=cEItmb_a20D",
"embedUrl": "https://www.youtube.com/embed/cEItmb_a20D",
"language": "nl",
"copyrightHolder": "Copyright afgehandeld door YouTube"
},
{
"id": "192a07d9-049b-4c2a-bc94-e46b7a557529",
"url": "https://www.youtube.com/watch?v=sXYtmb_q19C",
"embedUrl": "https://www.youtube.com/embed/sXYtmb_q19C",
"language": "fr",
"copyrightHolder": "publiq"
}
],
"organizer": {
"@type": "Organizer",
"@id": "https://io.uitdatabank.be/organizers/50c2e3f1-1f40-47a0-a72f-265ede8048fb",
Expand Down

0 comments on commit dc30d03

Please sign in to comment.