herpaderpaldent/seat-groups

View on GitHub
src/Actions/Seat/GetMainCharacterAction.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
 
namespace Herpaderpaldent\Seat\SeatGroups\Actions\Seat;
 
use Herpaderpaldent\Seat\SeatGroups\Exceptions\MissingMainCharacterException;
use Seat\Web\Models\Group;
 
class GetMainCharacterAction
{
public function execute(Group $group)
{
$main_character = $group->main_character;
 
if (is_null($main_character)) {
logger()->warning('Group has no main character set. Attempt to make assignation based on first attached character.', [
'group_id' => $group->id,
]);
$main_character = optional($group->users()->has('character')->first())->character;
}
 
if (is_null($main_character))
throw new MissingMainCharacterException($group);
 
return $main_character;
 
}
}