Skip to content

Commit

Permalink
[PATCH] Reduced cognitive complexity
Browse files Browse the repository at this point in the history
  • Loading branch information
core23 committed Apr 5, 2019
1 parent efb8200 commit 490df9f
Showing 1 changed file with 46 additions and 31 deletions.
77 changes: 46 additions & 31 deletions src/Model/Setlist.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

namespace Core23\SetlistFm\Model;

use DateTime;

final class Setlist
{
/**
Expand Down Expand Up @@ -54,26 +56,26 @@ final class Setlist
private $versionId;

/**
* @var \DateTime
* @var DateTime
*/
private $eventDate;

/**
* @var \DateTime|null
* @var DateTime|null
*/
private $updateDate;

/**
* @param string $id
* @param Artist|null $artist
* @param Venue|null $venue
* @param Tour|null $tour
* @param Set[] $sets
* @param string|null $info
* @param string|null $url
* @param string|null $versionId
* @param \DateTime $eventDate
* @param \DateTime|null $updateDate
* @param string $id
* @param Artist|null $artist
* @param Venue|null $venue
* @param Tour|null $tour
* @param Set[] $sets
* @param string|null $info
* @param string|null $url
* @param string|null $versionId
* @param DateTime $eventDate
* @param DateTime|null $updateDate
*/
public function __construct(
string $id,
Expand All @@ -84,8 +86,8 @@ public function __construct(
?string $info,
?string $url,
?string $versionId,
\DateTime $eventDate,
?\DateTime $updateDate
DateTime $eventDate,
?DateTime $updateDate
) {
$this->id = $id;
$this->artist = $artist;
Expand Down Expand Up @@ -164,17 +166,17 @@ public function getVersionId(): ?string
}

/**
* @return \DateTime
* @return DateTime
*/
public function getEventDate(): \DateTime
public function getEventDate(): DateTime
{
return $this->eventDate;
}

/**
* @return \DateTime|null
* @return DateTime|null
*/
public function getUpdateDate(): ?\DateTime
public function getUpdateDate(): ?DateTime
{
return $this->updateDate;
}
Expand All @@ -189,7 +191,6 @@ public static function fromApi(array $data): self
$artist = null;
$venue = null;
$tour = null;
$sets = [];

if (\array_key_exists('artist', $data)) {
$artist = Artist::fromApi($data['artist']);
Expand All @@ -201,6 +202,31 @@ public static function fromApi(array $data): self
$tour = Tour::fromApi($data['tour']);
}

$sets = self::createSetsFromApi($data);

return new self(
$data['id'],
$artist,
$venue,
$tour,
$sets,
$data['info'] ?? null,
$data['url'] ?? null,
$data['versionId'] ?? null,
new DateTime($data['eventDate']),
$data['lastUpdated'] ? new DateTime($data['lastUpdated']) : null
);
}

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

$setData = [];

if (\array_key_exists('sets', $data) && \array_key_exists('set', $data['sets'])) {
Expand All @@ -213,17 +239,6 @@ public static function fromApi(array $data): self
$sets[] = Set::fromApi($set);
}

return new self(
$data['id'],
$artist,
$venue,
$tour,
$sets,
$data['info'] ?? null,
$data['url'] ?? null,
$data['versionId'] ?? null,
new \DateTime($data['eventDate']),
$data['lastUpdated'] ? new \DateTime($data['lastUpdated']) : null
);
return $sets;
}
}

0 comments on commit 490df9f

Please sign in to comment.