diff --git a/app/Http/Controllers/ClosetManagementController.php b/app/Http/Controllers/ClosetManagementController.php index 0e5d5fb2..ef738d71 100644 --- a/app/Http/Controllers/ClosetManagementController.php +++ b/app/Http/Controllers/ClosetManagementController.php @@ -8,6 +8,14 @@ use Illuminate\Http\Request; class ClosetManagementController extends Controller { + public function list($uid) + { + /** @var User */ + $user = User::findOrFail($uid); + + return $user->closet; + } + public function add(Request $request, $uid) { /** @var Texture */ diff --git a/routes/api.php b/routes/api.php index bc52528f..10ab62e5 100644 --- a/routes/api.php +++ b/routes/api.php @@ -38,4 +38,10 @@ Route::prefix('admin') Route::put('{player}/textures', 'PlayersManagementController@texture'); Route::delete('{player}', 'PlayersManagementController@delete'); }); + + Route::prefix('closet')->group(function () { + Route::get('{uid}', 'ClosetManagementController@list'); + Route::post('{uid}', 'ClosetManagementController@add'); + Route::delete('{uid}', 'ClosetManagementController@remove'); + }); }); diff --git a/tests/HttpTest/ControllersTest/ClosetManagementControllerTest.php b/tests/HttpTest/ControllersTest/ClosetManagementControllerTest.php index f7fb1a10..0491e765 100644 --- a/tests/HttpTest/ControllersTest/ClosetManagementControllerTest.php +++ b/tests/HttpTest/ControllersTest/ClosetManagementControllerTest.php @@ -13,7 +13,18 @@ class ClosetManagementControllerTest extends TestCase protected function setUp(): void { parent::setUp(); - $this->actingAs(factory(\App\Models\User::class)->states('admin')->create()); + $this->actingAs(factory(User::class)->states('admin')->create()); + } + + public function testList() + { + $texture = factory(Texture::class)->create(); + $admin = factory(User::class)->states('admin')->create(); + $admin->closet()->attach($texture->tid); + + $this->actingAs($admin, 'oauth') + ->getJson('/api/admin/closet/'.$admin->uid) + ->assertJson([['tid' => $texture->tid]]); } public function testAdd()