New API: add new player
This commit is contained in:
parent
3a4bd6b24b
commit
1c205f6842
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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'),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user