Skip to content

Commit f85ebad

Browse files
committed
Implement getCollectionClass
1 parent 5ada24d commit f85ebad

5 files changed

Lines changed: 16 additions & 18 deletions

File tree

src/MTG/Parts/Card.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,10 @@
2020
use Discord\Builders\Components\Section;
2121
use Discord\Builders\Components\Separator;
2222
use Discord\Builders\Components\TextDisplay;
23-
use Discord\Helpers\Collection;
2423
use Discord\Helpers\ExCollectionInterface;
2524
use Discord\Parts\Embed\Embed;
2625
use Discord\Parts\Interactions\Interaction;
2726
use Discord\Parts\Part;
28-
use MTG\HelperTrait;
2927
use MTG\MTG;
3028
use React\Promise\PromiseInterface;
3129

@@ -127,7 +125,7 @@ public function getReleaseDateAttribute(): ?Carbon
127125
*/
128126
public function getRulingsAttribute(): ExCollectionInterface
129127
{
130-
$collection = Collection::for(Ruling::class);
128+
$collection = ($this->discord->getCollectionClass())::for(Ruling::class);
131129

132130
if (! isset($this->attributes['rulings']) || ! is_array($this->attributes['rulings'])) {
133131
return $collection;
@@ -149,7 +147,7 @@ public function getRulingsAttribute(): ExCollectionInterface
149147
*/
150148
public function getForeignNamesAttribute(): ExCollectionInterface
151149
{
152-
$collection = Collection::for(ForeignName::class);
150+
$collection = ($this->discord->getCollectionClass())::for(ForeignName::class);
153151

154152
if (! isset($this->attributes['foreignNames']) || ! is_array($this->attributes['foreignNames'])) {
155153
return $collection;
@@ -171,7 +169,7 @@ public function getForeignNamesAttribute(): ExCollectionInterface
171169
*/
172170
public function getLegalitiesAttribute(): ExCollectionInterface
173171
{
174-
$collection = Collection::for(Legality::class);
172+
$collection = ($this->discord->getCollectionClass())::for(Legality::class);
175173

176174
if (! isset($this->attributes['legalities']) || ! is_array($this->attributes['legalities'])) {
177175
return $collection;
@@ -243,7 +241,7 @@ public function getImageEmbedAttribute(): ?Embed
243241
*/
244242
public function normalLayoutContainer(?Interaction $interaction): Container
245243
{
246-
/** @var HelperTrait $mtg */
244+
/** @var MTG $mtg */
247245
$mtg = $this->discord;
248246

249247
$ci_emoji = (($this->colorIdentity) ? implode('', array_map(fn ($c) => $this->discord->emojis->get('name', 'CI_'.$c.'_'), $this->colorIdentity)) : '');

src/MTG/Repository/AbstractRepository.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ abstract class AbstractRepository extends DiscordAbstractRepository
3636
/**
3737
* AbstractRepository constructor.
3838
*
39-
* @param MTG $mtg
40-
* @param array $vars An array of variables used for the endpoint.
39+
* @param MTG|Discord $discord
40+
* @param array $vars An array of variables used for the endpoint.
4141
*/
42-
public function __construct(protected $mtg, array $vars = [])
42+
public function __construct(protected $discord, array $vars = [])
4343
{
44-
parent::__construct($mtg, $vars);
45-
$this->mtg_http = $mtg->getMtgHttpClient();
44+
parent::__construct($discord, $vars);
45+
$this->mtg_http = $discord->getMtgHttpClient();
4646
}
4747
}

src/MTG/Repository/AbstractRepositoryTrait.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313

1414
namespace MTG\Repository;
1515

16+
use Discord\Discord;
1617
use Discord\Helpers\CollectionTrait;
1718
use Discord\Helpers\ExCollectionInterface;
1819
use Discord\Http\Http;
1920
use Discord\Parts\Part;
2021
use MTG\Http\Endpoint;
2122
use MTG\Http\Http as MTGHttp;
23+
use MTG\MTG;
2224
use React\Promise\PromiseInterface;
2325

2426
use function Discord\nowait;
@@ -28,11 +30,11 @@
2830
/**
2931
* Provides common functionality for all repositories.
3032
*
31-
* @property Discord $discord The Discord client instance.
33+
* @property MTG|Discord $discord The Discord client instance.
3234
* @property string $discrim The collection discriminator.
3335
* @property array $items The items contained in the collection.
3436
* @property string $class Class type allowed into the collection.
35-
* @property Http $http The HTTP client.
37+
* @property Http $http The HTTP client.
3638
* @property MTGHttp $mtg_http The extended HTTP client.
3739
* @property Factory $factory The parts factory.
3840
* @property array $endpoints Endpoints for interacting with the Discord servers.
@@ -557,7 +559,7 @@ public function has(...$keys): bool
557559
public function filter(callable $callback)
558560
{
559561
/** @var ExCollectionInterface $collection */
560-
$collection = new $this->discord->getCollectionClass()([], $this->discrim, $this->class);
562+
$collection = new ($this->discord->getCollectionClass())([], $this->discrim, $this->class);
561563

562564
foreach ($this->items as $offset => $item) {
563565
if ($item instanceof \WeakReference) {

src/MTG/Repository/CardRepository.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
namespace MTG\Repository;
1515

16-
use Discord\Helpers\Collection;
1716
use Discord\Helpers\ExCollectionInterface;
1817
use Discord\Http\Endpoint;
1918
use MTG\Http\Endpoint as HttpEndpoint;
@@ -133,7 +132,7 @@ public function getCards(Card|array $params = []): PromiseInterface
133132
return $this->mtg_http->get($endpoint)->then(function ($response) {
134133
$response = $response->cards;
135134

136-
$collection = Collection::for($this->class);
135+
$collection = ($this->discord->getCollectionClass())::for($this->class);
137136

138137
foreach ($response as $cardData) {
139138
$card = $this->factory->create($this->class, array_merge($this->vars, (array) $cardData), true);

src/MTG/Repository/SetRepository.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
namespace MTG\Repository;
1515

16-
use Discord\Helpers\Collection;
1716
use Discord\Helpers\ExCollectionInterface;
1817
use Discord\Http\Endpoint;
1918
use MTG\Http\Endpoint as HttpEndpoint;
@@ -110,7 +109,7 @@ public function getSets($params = []): PromiseInterface
110109
return $this->mtg_http->get($endpoint)->then(function ($response) {
111110
$response = $response->sets;
112111

113-
$collection = Collection::for($this->class, $this->discrim);
112+
$collection = ($this->discord->getCollectionClass())::for($this->class, $this->discrim);
114113

115114
foreach ($response as $setData) {
116115
$set = $this->factory->create($this->class, array_merge($this->vars, (array) $setData), true);

0 commit comments

Comments
 (0)