Skip to content

Commit a677970

Browse files
committed
970: Fixed playlist slide weight
1 parent a4bc185 commit a677970

File tree

2 files changed

+19
-20
lines changed

2 files changed

+19
-20
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
- [#197](https://github.com/os2display/display-api-service/pull/197)
8+
- Fixed weight issue when assigning slides to playlist.
79
- [#194](https://github.com/os2display/display-api-service/pull/194)
810
Updated test run documentation and added test for `rrule` in playlist.
911
- Fixed issue with PlaylistSlide transaction.

src/Repository/PlaylistSlideRepository.php

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -98,27 +98,24 @@ public function updatePlaylistSlideRelations(Ulid $playlistUlid, ArrayCollection
9898
$this->entityManager->remove($entity);
9999
}
100100

101-
foreach ($slideIdsToAdd as $slideIdToAdd) {
102-
$slide = $slideRepos->findOneBy(['id' => $slideIdToAdd, 'tenant' => $tenant]);
101+
foreach ($collection->toArray() as $slideToAdd) {
102+
$slide = $slideRepos->findOneBy(['id' => $slideToAdd->slide, 'tenant' => $tenant]);
103103

104104
if (is_null($slide)) {
105105
throw new InvalidArgumentException('Slide not found');
106106
}
107107

108-
$playlistSlideRelations = $this->findOneBy(['slide' => $slide, 'playlist' => $playlist]);
108+
$playlistSlideRelation = $this->findOneBy(['slide' => $slide, 'playlist' => $playlist]);
109109

110-
if (is_null($playlistSlideRelations)) {
111-
$ulid = $this->validationUtils->validateUlid($slide->getId());
112-
$weight = $this->getWeight($ulid);
113-
114-
// Create new relation.
115-
$ps = new PlaylistSlide();
116-
$ps->setPlaylist($playlist)
117-
->setSlide($slide)
118-
->setWeight($weight);
110+
if (is_null($playlistSlideRelation)) {
111+
$playlistSlideRelation = new PlaylistSlide();
112+
$playlistSlideRelation->setPlaylist($playlist)
113+
->setSlide($slide);
119114

120-
$this->entityManager->persist($ps);
115+
$this->entityManager->persist($playlistSlideRelation);
121116
}
117+
118+
$playlistSlideRelation->setWeight($slideToAdd->weight);
122119
}
123120
$this->entityManager->flush();
124121

@@ -162,26 +159,26 @@ public function updateSlidePlaylistRelations(Ulid $slideUlid, ArrayCollection $c
162159
$this->entityManager->remove($entity);
163160
}
164161

165-
foreach ($playlistIdsToAdd as $playlistIdToAdd) {
166-
$playlist = $playlistRepos->findOneBy(['id' => $playlistIdToAdd, 'tenant' => $tenant]);
162+
foreach ($playlistIdsToAdd as $playlistId) {
163+
$playlist = $playlistRepos->findOneBy(['id' => $playlistId, 'tenant' => $tenant]);
167164

168165
if (is_null($playlist)) {
169166
throw new InvalidArgumentException('Playlist not found');
170167
}
171168

172-
$playlistSlideRelations = $this->findOneBy(['slide' => $slide, 'playlist' => $playlist]);
169+
$playlistSlideRelation = $this->findOneBy(['slide' => $slide, 'playlist' => $playlist]);
173170

174-
if (is_null($playlistSlideRelations)) {
171+
if (is_null($playlistSlideRelation)) {
175172
$ulid = $this->validationUtils->validateUlid($playlist->getId());
176173
$weight = $this->getWeight($ulid);
177174

178175
// Create new relation.
179-
$ps = new PlaylistSlide();
180-
$ps->setPlaylist($playlist)
176+
$playlistSlideRelation = new PlaylistSlide();
177+
$playlistSlideRelation->setPlaylist($playlist)
181178
->setSlide($slide)
182179
->setWeight($weight);
183180

184-
$this->entityManager->persist($ps);
181+
$this->entityManager->persist($playlistSlideRelation);
185182
}
186183
}
187184
$this->entityManager->flush();

0 commit comments

Comments
 (0)