From 32c30b195b510023a3c01077e77c2fd1fa6b57b9 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 27 Apr 2023 08:05:57 +1000 Subject: [PATCH] Static analysis cleanup --- app/Http/Controllers/BaseController.php | 25 ++++++++++++--- app/Http/Controllers/PreviewController.php | 37 ++++++++++++++++------ app/Jobs/Mail/NinjaMailerJob.php | 6 ++-- app/Models/Account.php | 1 + app/Models/BaseModel.php | 10 ++++-- app/Models/Traits/Excludable.php | 8 +++-- app/Models/Webhook.php | 1 + 7 files changed, 66 insertions(+), 22 deletions(-) diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index 60f0cd3624e4..b3fc93c0938d 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -928,7 +928,7 @@ class BaseController extends Controller /** * List response * - * @param Builder $query + * @param Builder $query */ protected function listResponse(Builder $query) { @@ -1011,7 +1011,11 @@ class BaseController extends Controller } if (request()->include_static) { - $response['static'] = Statics::company(auth()->user()->getCompany()->getLocale()); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $response['static'] = Statics::company($user->getCompany()->getLocale()); } } @@ -1042,8 +1046,11 @@ class BaseController extends Controller $resource = new Item($item, $transformer, $this->entity_type); - if (auth()->user() && request()->include_static) { - $data['static'] = Statics::company(auth()->user()->getCompany()->getLocale()); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + if ($user && request()->include_static) { + $data['static'] = Statics::company($user->getCompany()->getLocale()); } return $this->response($this->manager->createData($resource)->toArray()); @@ -1075,7 +1082,11 @@ class BaseController extends Controller * Thresholds for displaying large account on first load */ if (request()->has('first_load') && request()->input('first_load') == 'true') { - if (auth()->user()->getCompany()->is_large && request()->missing('updated_at')) { + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + if ($user->getCompany()->is_large && request()->missing('updated_at')) { $data = $this->mini_load; } else { $data = $this->first_load; @@ -1103,7 +1114,11 @@ class BaseController extends Controller */ public function flutterRoute() { + if ((bool) $this->checkAppSetup() !== false && $account = Account::first()) { + + /** @var \App\Models\Account $account */ + //always redirect invoicing.co to invoicing.co if (Ninja::isHosted() && !in_array(request()->getSchemeAndHttpHost(), ['https://staging.invoicing.co', 'https://invoicing.co', 'https://demo.invoicing.co', 'https://invoiceninja.net'])) { return redirect()->secure('https://invoicing.co'); diff --git a/app/Http/Controllers/PreviewController.php b/app/Http/Controllers/PreviewController.php index 322f85fe51ae..00567fcec83f 100644 --- a/app/Http/Controllers/PreviewController.php +++ b/app/Http/Controllers/PreviewController.php @@ -129,10 +129,9 @@ class PreviewController extends BaseController } - /** @var App\Models\User auth()->user() */ + /** @var \App\Models\User $user */ $user = auth()->user(); - /** @var \App\Models\Company $company */ $company = $user->company(); if (config('ninja.invoiceninja_hosted_pdf_generation') || config('ninja.pdf_generator') == 'hosted_ninja') { @@ -158,8 +157,11 @@ class PreviewController extends BaseController public function design(DesignPreviewRequest $request) { + /** @var \App\Models\User $user */ + $user = auth()->user(); + /** @var \App\Models\Company $company */ - $company = auth()->user()->company(); + $company = $user->company(); $pdf = (new PdfMock($request->all(), $company))->build()->getPdf(); @@ -175,8 +177,10 @@ class PreviewController extends BaseController return response()->json(['message' => 'This server cannot handle this request.'], 400); } - /** @var \App\Models\Company $company */ - $company = auth()->user()->company(); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $company = $user->company(); MultiDB::setDb($company->db); @@ -202,6 +206,8 @@ class PreviewController extends BaseController DB::connection(config('database.default'))->beginTransaction(); if ($request->has('entity_id')) { + + /** @var \App\Models\BaseModel $class */ $entity_obj = $class::on(config('database.default')) ->with('client.company') ->where('id', $this->decodePrimaryKey($request->input('entity_id'))) @@ -288,8 +294,11 @@ class PreviewController extends BaseController return (new Phantom)->convertHtmlToPdf($maker->getCompiledHTML(true)); } + /** @var \App\Models\User $user */ + $user = auth()->user(); + /** @var \App\Models\Company $company */ - $company = auth()->user()->company(); + $company = $user->company(); if (config('ninja.invoiceninja_hosted_pdf_generation') || config('ninja.pdf_generator') == 'hosted_ninja') { $pdf = (new NinjaPdf())->build($maker->getCompiledHTML(true)); @@ -320,8 +329,11 @@ class PreviewController extends BaseController private function blankEntity() { + /** @var \App\Models\User $user */ + $user = auth()->user(); + /** @var \App\Models\Company $company */ - $company = auth()->user()->company(); + $company = $user->company(); App::forgetInstance('translator'); $t = app('translator'); @@ -369,8 +381,11 @@ class PreviewController extends BaseController return (new Phantom)->convertHtmlToPdf($maker->getCompiledHTML(true)); } + /** @var \App\Models\User $user */ + $user = auth()->user(); + /** @var \App\Models\Company $company */ - $company = auth()->user()->company(); + $company = $user->company(); if (config('ninja.invoiceninja_hosted_pdf_generation') || config('ninja.pdf_generator') == 'hosted_ninja') { $pdf = (new NinjaPdf())->build($maker->getCompiledHTML(true)); @@ -394,8 +409,12 @@ class PreviewController extends BaseController private function mockEntity() { + /** @var \App\Models\User $user */ + $user = auth()->user(); + /** @var \App\Models\Company $company */ - $company = auth()->user()->company(); + $company = $user->company(); + DB::connection($company->db)->beginTransaction(); diff --git a/app/Jobs/Mail/NinjaMailerJob.php b/app/Jobs/Mail/NinjaMailerJob.php index 19fc3ae6fb28..034cab0e7ec6 100644 --- a/app/Jobs/Mail/NinjaMailerJob.php +++ b/app/Jobs/Mail/NinjaMailerJob.php @@ -580,10 +580,10 @@ class NinjaMailerJob implements ShouldQueue /** * Attempts to refresh the Microsoft refreshToken * - * @param App\Models\User - * @return string | boool + * @param \App\Models\User $user + * @return mixed */ - private function refreshOfficeToken($user) + private function refreshOfficeToken(User $user) { $expiry = $user->oauth_user_token_expiry ?: now()->subDay(); diff --git a/app/Models/Account.php b/app/Models/Account.php index cf01f16343c9..d801a5ed46f5 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -130,6 +130,7 @@ use Laracasts\Presenter\PresentableTrait; * @method static \Illuminate\Database\Eloquent\Builder|Account whereUtmMedium($value) * @method static \Illuminate\Database\Eloquent\Builder|Account whereUtmSource($value) * @method static \Illuminate\Database\Eloquent\Builder|Account whereUtmTerm($value) + * @method static \Illuminate\Database\Eloquent\Builder|Account first() * @property-read \Illuminate\Database\Eloquent\Collection $bank_integrations * @property-read \Illuminate\Database\Eloquent\Collection $companies * @property-read \Illuminate\Database\Eloquent\Collection $company_users diff --git a/app/Models/BaseModel.php b/app/Models/BaseModel.php index fe19e37e8be6..8bdbb6e525ed 100644 --- a/app/Models/BaseModel.php +++ b/app/Models/BaseModel.php @@ -100,7 +100,10 @@ class BaseModel extends Model */ public function scopeCompany($query) { - $query->where('company_id', auth()->user()->companyId()); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $query->where('company_id', $user->companyId()); return $query; } @@ -110,7 +113,10 @@ class BaseModel extends Model */ public function scopeScope($query) { - $query->where($this->getTable().'.company_id', '=', auth()->user()->company()->id); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $query->where($this->getTable().'.company_id', '=', $user->company()->id); return $query; } diff --git a/app/Models/Traits/Excludable.php b/app/Models/Traits/Excludable.php index 3df492f16cd2..55249c56dede 100644 --- a/app/Models/Traits/Excludable.php +++ b/app/Models/Traits/Excludable.php @@ -11,6 +11,8 @@ namespace App\Models\Traits; +use Illuminate\Support\Facades\Schema; + /** * @template TModelClass of \Illuminate\Database\Eloquent\Model * @extends \Illuminate\Database\Eloquent\Builder @@ -25,7 +27,7 @@ trait Excludable */ private function getTableColumns() { - /** @var \Illuminate\Database\Eloquent\Builder|\App\Models\BaseModel $this */ + /** @var Schema|\App\Models\BaseModel $this */ return $this->getConnection()->getSchemaBuilder()->getColumnListing($this->getTable()); } @@ -34,11 +36,11 @@ trait Excludable * @param Builder $query * @param array $columns * - * @return \Illuminate\Database\Eloquent\Builder|static + * @return Builder */ public function scopeExclude($query, $columns): \Illuminate\Database\Eloquent\Builder { - /** @var Builder|static $query */ + /** @var \Illuminate\Database\Eloquent\Builder|static $query */ return $query->select(array_diff($this->getTableColumns(), (array) $columns)); } } diff --git a/app/Models/Webhook.php b/app/Models/Webhook.php index 8b419a6bd739..05eab5acd514 100644 --- a/app/Models/Webhook.php +++ b/app/Models/Webhook.php @@ -53,6 +53,7 @@ use Illuminate\Database\Eloquent\SoftDeletes; * @method static \Illuminate\Database\Eloquent\Builder|Webhook whereUserId($value) * @method static \Illuminate\Database\Eloquent\Builder|Webhook withTrashed() * @method static \Illuminate\Database\Eloquent\Builder|Webhook withoutTrashed() + * @method static \Illuminate\Database\Eloquent\Builder|Webhook where() * @mixin \Eloquent */ class Webhook extends BaseModel