Skip to content

Commit

Permalink
[PATCH] Minor internal code refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
core23 committed Mar 19, 2019
1 parent 2dafa87 commit 290d640
Showing 1 changed file with 33 additions and 21 deletions.
54 changes: 33 additions & 21 deletions src/Service/TrackService.php
Original file line number Diff line number Diff line change
Expand Up @@ -365,27 +365,7 @@ public function scrobble(SessionInterface $session, array $tracks): void
throw new \InvalidArgumentException('A maximum of 50 tracks is allowed');
}

$data = [];

$i = 0;
foreach ($tracks as $track) {
// Required fields
foreach (['artist', 'track', 'timestamp'] as $field) {
if (!\array_key_exists($field, $track)) {
throw new \InvalidArgumentException(sprintf('Field "%s" not set on entry %s', $field, $i));
}
$data[$field.'['.$i.']'] = $track[$field];
}

// Optional fields
foreach (['album', 'context', 'streamId', 'chosenByUser', 'trackNumber', 'mbid', 'albumArtist', 'duration'] as $field) {
if (\array_key_exists($field, $track)) {
$data[$field.'['.$i.']'] = $track[$field];
}
}

++$i;
}
$data = self::buildTrackList($tracks);

$this->signedCall('album.scrobble', $data, $session, 'POST');
}
Expand Down Expand Up @@ -447,4 +427,36 @@ public function updateNowPlaying(SessionInterface $session, NowPlaying $nowPlayi
{
$this->signedCall('track.updateNowPlaying', $nowPlaying->toArray(), $session, 'POST');
}

/**
* @param array $tracks
*
* @return array
*/
private static function buildTrackList(array $tracks): array
{
$data = [];

$i = 0;
foreach ($tracks as $track) {
// Required fields
foreach (['artist', 'track', 'timestamp'] as $field) {
if (!\array_key_exists($field, $track)) {
throw new \InvalidArgumentException(sprintf('Field "%s" not set on entry %s', $field, $i));
}
$data[$field.'['.$i.']'] = $track[$field];
}

// Optional fields
foreach (['album', 'context', 'streamId', 'chosenByUser', 'trackNumber', 'mbid', 'albumArtist', 'duration'] as $field) {
if (\array_key_exists($field, $track)) {
$data[$field.'['.$i.']'] = $track[$field];
}
}

++$i;
}

return $data;
}
}

0 comments on commit 290d640

Please sign in to comment.