. */ declare(strict_types=1); namespace FireflyIII\Api\V2\Request\UserGroup; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** * Class StoreRequest */ class UpdateMembershipRequest extends FormRequest { use ChecksLogin; use ConvertsDataTypes; protected array $acceptedRoles = [UserRoleEnum::OWNER, UserRoleEnum::FULL]; public function getAll(): array { return [ 'id' => $this->convertInteger('id'), 'email' => $this->convertString('email'), 'roles' => $this->get('roles') ?? [], ]; } public function rules(): array { $validRoles = []; foreach (UserRoleEnum::cases() as $role) { $validRoles[] = $role->value; } return [ 'id' => 'exists:users,id|required_without:email', 'email' => 'exists:users,email|required_without:id', 'roles.*' => 'required|in:'.implode(',', $validRoles), ]; } }