app/Jobs/ImportProfession.php: make $character variable optional and require $user.
This commit is contained in:
parent
f82f7c3571
commit
8eda7a315c
6 changed files with 174 additions and 34 deletions
|
|
@ -41,7 +41,7 @@ class CharacterProfessionController extends Controller
|
|||
$data = json_decode($request->input('data'));
|
||||
|
||||
try {
|
||||
ImportProfession::dispatch($character, $data);
|
||||
ImportProfession::dispatch($data, $request->user(), $character);
|
||||
} catch(\App\ProfessionImport\Exception $e) {
|
||||
return redirect()->back()->with('error', $e->getMessage());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Jobs;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Character;
|
||||
use App\Models\Profession;
|
||||
use App\Models\CharacterProfession;
|
||||
|
|
@ -40,12 +41,22 @@ class ImportProfession implements ShouldQueue
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Character $character, $data)
|
||||
public function __construct($data, User $user, ?Character $character = null)
|
||||
{
|
||||
// Validate character name first.
|
||||
if ($character->name !== $data->player) {
|
||||
$message = sprintf('Wrong character: %s expected %s', $data->player, $character->name);
|
||||
throw new InvalidCharacterException($message);
|
||||
if ($character) {
|
||||
if ($character->name !== $data->player) {
|
||||
$message = sprintf('Wrong character: %s expected %s', $data->player, $character->name);
|
||||
throw new InvalidCharacterException($message);
|
||||
}
|
||||
} else {
|
||||
$character = Character::where('name', $data->player)
|
||||
->where('user_id', $user->id)->first();
|
||||
|
||||
if (!$character) {
|
||||
$message = sprintf('Could not find character "%s"', $data->player);
|
||||
throw new InvalidCharacterException($message);
|
||||
}
|
||||
}
|
||||
|
||||
// Validate profession
|
||||
|
|
|
|||
Reference in a new issue