Blame view
app/Http/Match/MatchSlug.php
1.7 KB
e77200db5 Initial commit |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
<?php namespace FootyRoom\Http\Match; use FootyRoom\Core\Match\Match; use FootyRoom\Queries\MatchQuery; use FootyRoom\Queries\Match\Match as MatchReadModel; use Illuminate\Support\Str; class MatchSlug { /** * @var \FootyRoom\Queries\MatchQuery */ protected $matchQuery; /** * Constructor. * * @param \FootyRoom\Queries\MatchQuery $matchQuery */ public function __construct(MatchQuery $matchQuery) { $this->matchQuery = $matchQuery; } /** * Get match slug from match id. * * @param int $matchId * * @return string|null */ public function fromId($matchId) { $match = $this->matchQuery->findById($matchId, ['homeTeam' => 1, 'awayTeam' => 1]); if (!$match) { return null; } return self::fromMatchQuery($match); } /** * Get match slug from team names. * * @param string $homeTeamName * @param string $awayTeamName * * @return string */ public static function fromTeams($homeTeamName, $awayTeamName) { return Str::slug("{$homeTeamName}-vs-{$awayTeamName}"); } /** * Get match slug from Match object. * * @param \FootyRoom\Core\Match\Match $match */ public static function fromMatch(Match $match) { return self::fromTeams($match->getHomeTeam()->getName(), $match->getAwayTeam()->getName()); } /** * Get match slug from Match object. * * @param \FootyRoom\Queries\Match\Match $match The match */ public static function fromMatchQuery(MatchReadModel $match) { return self::fromTeams($match->homeTeam->name, $match->awayTeam->name); } } |