diff --git a/app/Http/Controllers/PlayerController.php b/app/Http/Controllers/PlayerController.php index c1a9bd5c..e2d8c36c 100644 --- a/app/Http/Controllers/PlayerController.php +++ b/app/Http/Controllers/PlayerController.php @@ -83,13 +83,13 @@ class PlayerController extends Controller return json(trans('user.player.add.single'), 1); } - $this->validate($request, [ - 'player_name' => 'required|player_name|min:'.option('player_name_length_min').'|max:'.option('player_name_length_max'), - ]); + $name = $this->validate($request, [ + 'name' => 'required|player_name|min:'.option('player_name_length_min').'|max:'.option('player_name_length_max'), + ])['name']; - event(new CheckPlayerExists($request->input('player_name'))); + event(new CheckPlayerExists($name)); - if (! Player::where('name', $request->input('player_name'))->get()->isEmpty()) { + if (! Player::where('name', $name)->get()->isEmpty()) { return json(trans('user.player.add.repeated'), 6); } @@ -97,12 +97,12 @@ class PlayerController extends Controller return json(trans('user.player.add.lack-score'), 7); } - event(new PlayerWillBeAdded($request->input('player_name'))); + event(new PlayerWillBeAdded($name)); $player = new Player; $player->uid = $user->uid; - $player->name = $request->input('player_name'); + $player->name = $name; $player->tid_skin = 0; $player->save(); @@ -110,7 +110,7 @@ class PlayerController extends Controller $user->setScore(option('score_per_player'), 'minus'); - return json(trans('user.player.add.success', ['name' => $request->input('player_name')]), 0); + return json(trans('user.player.add.success', ['name' => $name]), 0); } public function delete() diff --git a/resources/assets/src/components/AddPlayerDialog.vue b/resources/assets/src/components/AddPlayerDialog.vue index d2577884..78f03ec8 100644 --- a/resources/assets/src/components/AddPlayerDialog.vue +++ b/resources/assets/src/components/AddPlayerDialog.vue @@ -62,7 +62,7 @@ export default { async addPlayer() { const { code, message } = await this.$http.post( '/user/player/add', - { player_name: this.name } + { name: this.name } ) if (code === 0) { $('#modal-add-player').modal('hide') diff --git a/resources/assets/tests/components/AddPlayerDialog.test.ts b/resources/assets/tests/components/AddPlayerDialog.test.ts index 649cc1eb..b387c20f 100644 --- a/resources/assets/tests/components/AddPlayerDialog.test.ts +++ b/resources/assets/tests/components/AddPlayerDialog.test.ts @@ -21,7 +21,7 @@ test('add player', async () => { button.trigger('click') expect(Vue.prototype.$http.post).toBeCalledWith( '/user/player/add', - { player_name: 'the-new' } + { name: 'the-new' } ) await flushPromises() await wrapper.vm.$nextTick() diff --git a/routes/api.php b/routes/api.php index f15ebcc4..e4e4d081 100644 --- a/routes/api.php +++ b/routes/api.php @@ -8,5 +8,7 @@ Route::prefix('auth')->group(function ($route) { Route::prefix('user')->middleware('auth.jwt')->group(function ($route) { $route->put('sign', 'UserController@sign'); + + $route->post('player', 'PlayerController@add'); }); diff --git a/tests/PlayerControllerTest.php b/tests/PlayerControllerTest.php index bf212497..a7842b40 100644 --- a/tests/PlayerControllerTest.php +++ b/tests/PlayerControllerTest.php @@ -41,29 +41,29 @@ class PlayerControllerTest extends TestCase public function testAdd() { // Without player name - $this->postJson('/user/player/add')->assertJsonValidationErrors('player_name'); + $this->postJson('/user/player/add')->assertJsonValidationErrors('name'); // Only A-Za-z0-9_ are allowed option(['player_name_rule' => 'official']); $this->postJson( '/user/player/add', - ['player_name' => '角色名'] - )->assertJsonValidationErrors('player_name'); + ['name' => '角色名'] + )->assertJsonValidationErrors('name'); // Custom player name rule (regexp) option(['player_name_rule' => 'custom']); option(['custom_player_name_regexp' => '/^([0-9]+)$/']); $this->postJson( '/user/player/add', - ['player_name' => 'yjsnpi'] - )->assertJsonValidationErrors('player_name'); + ['name' => 'yjsnpi'] + )->assertJsonValidationErrors('name'); // Lack of score option(['player_name_rule' => 'official']); $user = factory(User::class)->create(['score' => 0]); $this->actingAs($user)->postJson( '/user/player/add', - ['player_name' => 'no_score'] + ['name' => 'no_score'] )->assertJson([ 'code' => 7, 'message' => trans('user.player.add.lack-score'), @@ -75,7 +75,7 @@ class PlayerControllerTest extends TestCase $user = factory(User::class)->create(); $score = $user->score; $this->actingAs($user)->postJson('/user/player/add', [ - 'player_name' => '角色名', + 'name' => '角色名', ])->assertJson([ 'code' => 0, 'message' => trans('user.player.add.success', ['name' => '角色名']), @@ -92,7 +92,7 @@ class PlayerControllerTest extends TestCase ); // Add a existed player - $this->postJson('/user/player/add', ['player_name' => '角色名']) + $this->postJson('/user/player/add', ['name' => '角色名']) ->assertJson([ 'code' => 6, 'message' => trans('user.player.add.repeated'), @@ -100,7 +100,7 @@ class PlayerControllerTest extends TestCase // Single player option(['single_player' => true]); - $this->postJson('/user/player/add', ['player_name' => 'abc']) + $this->postJson('/user/player/add', ['name' => 'abc']) ->assertJson([ 'code' => 1, 'message' => trans('user.player.add.single'),