diff --git a/src/Data/Store.php b/src/Data/Store.php index b9df3ca..bd5e420 100644 --- a/src/Data/Store.php +++ b/src/Data/Store.php @@ -2,6 +2,8 @@ namespace JustBetter\MagentoUtilities\Data; +use JustBetter\MagentoUtilities\Contracts\GetsWebsites; + /** * @property int $id * @property string $code @@ -14,5 +16,15 @@ */ class Store extends Data { - // + public function website(): Website + { + /** @var GetsWebsites $contract */ + $contract = app(GetsWebsites::class); + + $websites = $contract->get(); + + return $websites + ->where('id', '=', $this->website_id) + ->firstOrFail(); + } } diff --git a/tests/Data/StoreTest.php b/tests/Data/StoreTest.php new file mode 100644 index 0000000..48725f9 --- /dev/null +++ b/tests/Data/StoreTest.php @@ -0,0 +1,49 @@ + Http::response([ + [ + 'id' => 0, + 'code' => 'admin', + 'name' => 'Admin', + 'default_group_id' => 0, + ], + [ + 'id' => 1, + 'code' => 'base', + 'name' => 'Base', + 'default_group_id' => 1, + ], + ]), + ])->preventStrayRequests(); + + $store = Store::make([ + 'id' => 1, + 'code' => 'default', + 'name' => 'Default', + 'website_id' => 1, + 'store_group_id' => 1, + 'is_active' => 1, + ]); + + $website = $store->website(); + + $this->assertEquals(1, $website->id); + $this->assertEquals('base', $website->code); + } +}