From dc1d23067cd2ad9be7c000b4628be61a5468f4dc Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 4 Aug 2023 18:13:26 +1000 Subject: [PATCH] Fixes for tests --- .../Controllers/CompanyUserController.php | 11 ++-- app/Http/Controllers/QuoteController.php | 2 +- .../RecurringExpenseController.php | 19 ++++-- .../Controllers/RecurringQuoteController.php | 25 +++++--- .../Controllers/Shop/ClientController.php | 2 + .../Controllers/Shop/InvoiceController.php | 2 + .../Controllers/Shop/ProductController.php | 2 + .../Controllers/Shop/ProfileController.php | 1 + app/Http/Controllers/StaticController.php | 8 ++- .../Controllers/StripeConnectController.php | 1 + app/Http/Controllers/StripeController.php | 30 ++++++--- .../Controllers/SubscriptionController.php | 48 ++++++++------ app/Http/Controllers/TaskController.php | 4 +- app/Http/Controllers/TaskStatusController.php | 19 +++--- app/Http/Controllers/VendorController.php | 2 +- .../VendorPortal/DocumentController.php | 2 + .../VendorPortal/PurchaseOrderController.php | 6 +- app/Models/PurchaseOrderInvitation.php | 27 +++----- app/Models/VendorContact.php | 64 +------------------ app/Repositories/UserRepository.php | 12 ++-- tests/Feature/UserTest.php | 5 +- 21 files changed, 135 insertions(+), 157 deletions(-) diff --git a/app/Http/Controllers/CompanyUserController.php b/app/Http/Controllers/CompanyUserController.php index e3d7c7ba8f21..22d1a0ee2ae9 100644 --- a/app/Http/Controllers/CompanyUserController.php +++ b/app/Http/Controllers/CompanyUserController.php @@ -111,10 +111,8 @@ class CompanyUserController extends BaseController */ public function update(UpdateCompanyUserRequest $request, User $user) { - /** @var \App\Models\User $logged_in_user */ - $logged_in_user = auth()->user(); - $company = $logged_in_user->company(); + $company = auth()->user()->company(); $company_user = CompanyUser::whereUserId($user->id)->whereCompanyId($company->id)->first(); @@ -124,7 +122,7 @@ class CompanyUserController extends BaseController return; } - if ($logged_in_user->isAdmin()) { + if (auth()->user()->isAdmin()) { $company_user->fill($request->input('company_user')); } else { $company_user->settings = $request->input('company_user')['settings']; @@ -138,9 +136,8 @@ class CompanyUserController extends BaseController public function updatePreferences(UpdateCompanyUserPreferencesRequest $request, User $user) { - /** @var \App\Models\User $logged_in_user */ - $logged_in_user = auth()->user(); - $company = $logged_in_user->company(); + + $company = auth()->user()->company(); $company_user = CompanyUser::whereUserId($user->id)->whereCompanyId($company->id)->first(); diff --git a/app/Http/Controllers/QuoteController.php b/app/Http/Controllers/QuoteController.php index 08dd6d885d85..cfbad5fe931c 100644 --- a/app/Http/Controllers/QuoteController.php +++ b/app/Http/Controllers/QuoteController.php @@ -520,7 +520,7 @@ class QuoteController extends BaseController $ids = request()->input('ids'); - if (Ninja::isHosted() && (stripos($action, 'email') !== false) && !auth()->user()->company()->account->account_sms_verified) { + if (Ninja::isHosted() && (stripos($action, 'email') !== false) && !$user->account->account_sms_verified) { return response(['message' => 'Please verify your account to send emails.'], 400); } diff --git a/app/Http/Controllers/RecurringExpenseController.php b/app/Http/Controllers/RecurringExpenseController.php index 1ff6b628e1d2..0a4d4ef59377 100644 --- a/app/Http/Controllers/RecurringExpenseController.php +++ b/app/Http/Controllers/RecurringExpenseController.php @@ -320,7 +320,10 @@ class RecurringExpenseController extends BaseController */ public function create(CreateRecurringExpenseRequest $request) { - $recurring_expense = RecurringExpenseFactory::create(auth()->user()->company()->id, auth()->user()->id); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $recurring_expense = RecurringExpenseFactory::create($user->company()->id, $user->id); return $this->itemResponse($recurring_expense); } @@ -365,10 +368,13 @@ class RecurringExpenseController extends BaseController */ public function store(StoreRecurringExpenseRequest $request) { - $recurring_expense = $this->recurring_expense_repo->save($request->all(), RecurringExpenseFactory::create(auth()->user()->company()->id, auth()->user()->id)); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $recurring_expense = $this->recurring_expense_repo->save($request->all(), RecurringExpenseFactory::create($user->company()->id, $user->id)); $recurring_expense->service()->triggeredActions($request)->save(); - event(new RecurringExpenseWasCreated($recurring_expense, $recurring_expense->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); + event(new RecurringExpenseWasCreated($recurring_expense, $recurring_expense->company, Ninja::eventVars($user->id))); return $this->itemResponse($recurring_expense); } @@ -481,13 +487,16 @@ class RecurringExpenseController extends BaseController */ public function bulk() { + /** @var \App\Models\User $user */ + $user = auth()->user(); + $action = request()->input('action'); $ids = request()->input('ids'); $recurring_expenses = RecurringExpense::withTrashed()->find($this->transformKeys($ids)); - $recurring_expenses->each(function ($recurring_expense, $key) use ($action) { - if (auth()->user()->can('edit', $recurring_expense)) { + $recurring_expenses->each(function ($recurring_expense, $key) use ($action, $user) { + if ($user->can('edit', $recurring_expense)) { $this->performAction($recurring_expense, $action, true); } }); diff --git a/app/Http/Controllers/RecurringQuoteController.php b/app/Http/Controllers/RecurringQuoteController.php index 141f8ecf92eb..348440c234a1 100644 --- a/app/Http/Controllers/RecurringQuoteController.php +++ b/app/Http/Controllers/RecurringQuoteController.php @@ -148,7 +148,10 @@ class RecurringQuoteController extends BaseController */ public function create(CreateRecurringQuoteRequest $request) { - $recurring_quote = RecurringQuoteFactory::create(auth()->user()->company()->id, auth()->user()->id); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $recurring_quote = RecurringQuoteFactory::create($user->company()->id, $user->id); return $this->itemResponse($recurring_quote); } @@ -193,7 +196,10 @@ class RecurringQuoteController extends BaseController */ public function store(StoreRecurringQuoteRequest $request) { - $recurring_quote = $this->recurring_quote_repo->save($request, RecurringQuoteFactory::create(auth()->user()->company()->id, auth()->user()->id)); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $recurring_quote = $this->recurring_quote_repo->save($request, RecurringQuoteFactory::create($user->company()->id, $user->id)); return $this->itemResponse($recurring_quote); } @@ -479,14 +485,17 @@ class RecurringQuoteController extends BaseController */ public function bulk() { + /** @var \App\Models\User $user */ + $user = auth()->user(); + $action = request()->input('action'); $ids = request()->input('ids'); $recurring_quotes = RecurringQuote::withTrashed()->find($this->transformKeys($ids)); - $recurring_quotes->each(function ($recurring_quote, $key) use ($action) { - if (auth()->user()->can('edit', $recurring_quote)) { + $recurring_quotes->each(function ($recurring_quote, $key) use ($action, $user) { + if ($user->can('edit', $recurring_quote)) { $this->recurring_quote_repo->{$action}($recurring_quote); } }); @@ -573,11 +582,11 @@ class RecurringQuoteController extends BaseController // return $this->itemResponse($recurring_invoice); break; case 'clone_to_quote': - $quote = CloneRecurringQuoteToQuoteFactory::create($recurring_invoice, auth()->user()->id); - $this->entity_transformer = QuoteTransformer::class; - $this->entity_type = Quote::class; + // $quote = CloneRecurringQuoteToQuoteFactory::create($recurring_invoice, auth()->user()->id); + // $this->entity_transformer = QuoteTransformer::class; + // $this->entity_type = Quote::class; - return $this->itemResponse($quote); + // return $this->itemResponse($quote); break; case 'history': // code... diff --git a/app/Http/Controllers/Shop/ClientController.php b/app/Http/Controllers/Shop/ClientController.php index eaea49eb99f1..2711563aadf6 100644 --- a/app/Http/Controllers/Shop/ClientController.php +++ b/app/Http/Controllers/Shop/ClientController.php @@ -53,6 +53,7 @@ class ClientController extends BaseController public function show(Request $request, string $contact_key) { + /** @var \App\Models\Company $company */ $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); if (! $company->enable_shop_api) { @@ -69,6 +70,7 @@ class ClientController extends BaseController public function store(StoreShopClientRequest $request) { + /** @var \App\Models\Company $company */ $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); if (! $company->enable_shop_api) { diff --git a/app/Http/Controllers/Shop/InvoiceController.php b/app/Http/Controllers/Shop/InvoiceController.php index e5eca8f2d7a9..b8ad0d90328f 100644 --- a/app/Http/Controllers/Shop/InvoiceController.php +++ b/app/Http/Controllers/Shop/InvoiceController.php @@ -53,6 +53,7 @@ class InvoiceController extends BaseController public function show(Request $request, string $invitation_key) { + /** @var \App\Models\Company $company */ $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); if (! $company->enable_shop_api) { @@ -69,6 +70,7 @@ class InvoiceController extends BaseController public function store(StoreShopInvoiceRequest $request) { + /** @var \App\Models\Company $company */ $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); if (! $company->enable_shop_api) { diff --git a/app/Http/Controllers/Shop/ProductController.php b/app/Http/Controllers/Shop/ProductController.php index da6d91407e63..aea06f5c5f9d 100644 --- a/app/Http/Controllers/Shop/ProductController.php +++ b/app/Http/Controllers/Shop/ProductController.php @@ -36,6 +36,7 @@ class ProductController extends BaseController */ public function index(Request $request) { + /** @var \App\Models\Company $company */ $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->firstOrFail(); if (! $company->enable_shop_api) { @@ -49,6 +50,7 @@ class ProductController extends BaseController public function show(Request $request, string $product_key) { + /** @var \App\Models\Company $company */ $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->firstOrFail(); if (! $company->enable_shop_api) { diff --git a/app/Http/Controllers/Shop/ProfileController.php b/app/Http/Controllers/Shop/ProfileController.php index a744c5f51ce7..975ca5cf34af 100644 --- a/app/Http/Controllers/Shop/ProfileController.php +++ b/app/Http/Controllers/Shop/ProfileController.php @@ -28,6 +28,7 @@ class ProfileController extends BaseController public function show(Request $request) { + /** @var \App\Models\Company $company */ $company = Company::where('company_key', $request->header('X-API-COMPANY-KEY'))->first(); if (! $company->enable_shop_api) { diff --git a/app/Http/Controllers/StaticController.php b/app/Http/Controllers/StaticController.php index bd9fddf84e31..1d2186090925 100644 --- a/app/Http/Controllers/StaticController.php +++ b/app/Http/Controllers/StaticController.php @@ -19,8 +19,6 @@ class StaticController extends BaseController /** * Show the list of Invoices. * - * @param InvoiceFilters $filters The filters - * * @return Response * * @OA\Get( @@ -54,7 +52,11 @@ class StaticController extends BaseController */ public function __invoke() { - $response = Statics::company(auth()->user()->getCompany()->getLocale()); + + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $response = Statics::company($user->company()->getLocale()); return response()->json($response, 200, ['Content-type'=> 'application/json; charset=utf-8'], JSON_PRETTY_PRINT); } diff --git a/app/Http/Controllers/StripeConnectController.php b/app/Http/Controllers/StripeConnectController.php index 9408f987b0b9..691d8602fd3a 100644 --- a/app/Http/Controllers/StripeConnectController.php +++ b/app/Http/Controllers/StripeConnectController.php @@ -81,6 +81,7 @@ class StripeConnectController extends BaseController MultiDB::findAndSetDbByCompanyKey($request->getTokenContent()['company_key']); + /** @var \App\Models\Company $company */ $company = Company::where('company_key', $request->getTokenContent()['company_key'])->first(); $company_gateway = CompanyGateway::query() diff --git a/app/Http/Controllers/StripeController.php b/app/Http/Controllers/StripeController.php index a50402a6c1e1..c434ddae21b8 100644 --- a/app/Http/Controllers/StripeController.php +++ b/app/Http/Controllers/StripeController.php @@ -27,8 +27,11 @@ class StripeController extends BaseController public function update() { - if (auth()->user()->isAdmin()) { - StripeUpdatePaymentMethods::dispatch(auth()->user()->company()); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + if ($user->isAdmin()) { + StripeUpdatePaymentMethods::dispatch($user->company()); return response()->json(['message' => 'Processing'], 200); } @@ -38,10 +41,11 @@ class StripeController extends BaseController public function import() { - // return response()->json(['message' => 'Processing'], 200); + /** @var \App\Models\User $user */ + $user = auth()->user(); - if (auth()->user()->isAdmin()) { - ImportStripeCustomers::dispatch(auth()->user()->company()); + if ($user->isAdmin()) { + ImportStripeCustomers::dispatch($user->company()); return response()->json(['message' => 'Processing'], 200); } @@ -51,10 +55,14 @@ class StripeController extends BaseController public function verify() { - if (auth()->user()->isAdmin()) { - MultiDB::findAndSetDbByCompanyKey(auth()->user()->company()->company_key); + /** @var \App\Models\User $user */ + $user = auth()->user(); - $company_gateway = CompanyGateway::where('company_id', auth()->user()->company()->id) + if ($user->isAdmin()) { + MultiDB::findAndSetDbByCompanyKey($user->company()->company_key); + + /** @var \App\Models\CompanyGateway $company_gateway */ + $company_gateway = CompanyGateway::where('company_id', $user->company()->id) ->where('is_deleted', 0) ->whereIn('gateway_key', $this->stripe_keys) ->first(); @@ -67,7 +75,11 @@ class StripeController extends BaseController public function disconnect(string $company_gateway_id) { - $company_gateway = CompanyGateway::where('company_id', auth()->user()->company()->id) + /** @var \App\Models\User $user */ + $user = auth()->user(); + + /** @var \App\Models\CompanyGateway $company_gateway */ + $company_gateway = CompanyGateway::where('company_id', $user->company()->id) ->where('id', $this->decodePrimaryKey($company_gateway_id)) ->whereIn('gateway_key', $this->stripe_keys) ->firstOrFail(); diff --git a/app/Http/Controllers/SubscriptionController.php b/app/Http/Controllers/SubscriptionController.php index 55b3ea375756..9a21f2043293 100644 --- a/app/Http/Controllers/SubscriptionController.php +++ b/app/Http/Controllers/SubscriptionController.php @@ -48,7 +48,7 @@ class SubscriptionController extends BaseController /** * Show the list of Subscriptions. * - * @return \Illuminate\Http\JsonResponse + * @return \Illuminate\Http\Response * * @OA\Get( * path="/api/v1/subscriptions", @@ -92,7 +92,7 @@ class SubscriptionController extends BaseController * * @param CreateSubscriptionRequest $request The request * - * @return \Illuminate\Http\JsonResponse + * @return \Illuminate\Http\Response * * * @OA\Get( @@ -127,7 +127,10 @@ class SubscriptionController extends BaseController */ public function create(CreateSubscriptionRequest $request): \Illuminate\Http\Response { - $subscription = SubscriptionFactory::create(auth()->user()->company()->id, auth()->user()->id); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + $subscription = SubscriptionFactory::create($user->company()->id, $user->id); return $this->itemResponse($subscription); } @@ -137,7 +140,7 @@ class SubscriptionController extends BaseController * * @param StoreSubscriptionRequest $request The request * - * @return \Illuminate\Http\JsonResponse + * @return \Illuminate\Http\Response * * * @OA\Post( @@ -172,9 +175,12 @@ class SubscriptionController extends BaseController */ public function store(StoreSubscriptionRequest $request): \Illuminate\Http\Response { - $subscription = $this->subscription_repo->save($request->all(), SubscriptionFactory::create(auth()->user()->company()->id, auth()->user()->id)); + /** @var \App\Models\User $user */ + $user = auth()->user(); - event(new SubscriptionWasCreated($subscription, $subscription->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); + $subscription = $this->subscription_repo->save($request->all(), SubscriptionFactory::create($user->company()->id, $user->id)); + + event(new SubscriptionWasCreated($subscription, $subscription->company, Ninja::eventVars($user->id))); return $this->itemResponse($subscription); } @@ -183,9 +189,9 @@ class SubscriptionController extends BaseController * Display the specified resource. * * @param ShowSubscriptionRequest $request The request - * @param Invoice $subscription The invoice + * @param Subscription $subscription The invoice * - * @return \Illuminate\Http\JsonResponse + * @return \Illuminate\Http\Response * * * @OA\Get( @@ -238,9 +244,9 @@ class SubscriptionController extends BaseController * Show the form for editing the specified resource. * * @param EditSubscriptionRequest $request The request - * @param Invoice $subscription The invoice + * @param Subscription $subscription The subscription * - * @return \Illuminate\Http\JsonResponse + * @return \Illuminate\Http\Response * * @OA\Get( * path="/api/v1/subscriptions/{id}/edit", @@ -292,9 +298,9 @@ class SubscriptionController extends BaseController * Update the specified resource in storage. * * @param UpdateSubscriptionRequest $request The request - * @param Subscription $subscription The invoice + * @param Subscription $subscription The subscription * - * @return \Illuminate\Http\JsonResponse + * @return \Illuminate\Http\Response * * * @OA\Put( @@ -338,7 +344,7 @@ class SubscriptionController extends BaseController * ), * ) */ - public function update(UpdateSubscriptionRequest $request, Subscription $subscription) + public function update(UpdateSubscriptionRequest $request, Subscription $subscription): \Illuminate\Http\Response { if ($request->entityIsDeleted($subscription)) { return $request->disallowUpdate(); @@ -346,7 +352,10 @@ class SubscriptionController extends BaseController $subscription = $this->subscription_repo->save($request->all(), $subscription); - event(new SubscriptionWasUpdated($subscription, $subscription->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); + /** @var \App\Models\User $user */ + $user = auth()->user(); + + event(new SubscriptionWasUpdated($subscription, $subscription->company, Ninja::eventVars($user->id))); return $this->itemResponse($subscription); } @@ -355,9 +364,9 @@ class SubscriptionController extends BaseController * Remove the specified resource from storage. * * @param DestroySubscriptionRequest $request - * @param Subscription $invoice + * @param Subscription $subscription * - * @return \Illuminate\Http\JsonResponse + * @return \Illuminate\Http\Response * * @throws \Exception * @OA\Delete( @@ -459,13 +468,16 @@ class SubscriptionController extends BaseController */ public function bulk() { + /** @var \App\Models\User $user */ + $user = auth()->user(); + $action = request()->input('action'); $ids = request()->input('ids'); $subscriptions = Subscription::withTrashed()->find($this->transformKeys($ids)); - $subscriptions->each(function ($subscription, $key) use ($action) { - if (auth()->user()->can('edit', $subscription)) { + $subscriptions->each(function ($subscription, $key) use ($action, $user) { + if ($user->can('edit', $subscription)) { $this->subscription_repo->{$action}($subscription); } }); diff --git a/app/Http/Controllers/TaskController.php b/app/Http/Controllers/TaskController.php index 313038e34a30..5deec8f6652b 100644 --- a/app/Http/Controllers/TaskController.php +++ b/app/Http/Controllers/TaskController.php @@ -50,7 +50,7 @@ class TaskController extends BaseController protected $entity_transformer = TaskTransformer::class; /** - * @var Taskepository + * @var TaskRepository */ protected $task_repo; @@ -583,7 +583,7 @@ class TaskController extends BaseController /** * Store a newly created resource in storage. * - * @param StoreTaskRequest $request + * @param SortTaskRequest $request * @return Response * * diff --git a/app/Http/Controllers/TaskStatusController.php b/app/Http/Controllers/TaskStatusController.php index 4dc1e3f11f37..ce5f8da05481 100644 --- a/app/Http/Controllers/TaskStatusController.php +++ b/app/Http/Controllers/TaskStatusController.php @@ -11,19 +11,20 @@ namespace App\Http\Controllers; +use App\Models\TaskStatus; +use Illuminate\Http\Response; +use App\Utils\Traits\MakesHash; use App\Factory\TaskStatusFactory; use App\Filters\TaskStatusFilters; -use App\Http\Requests\TaskStatus\ActionTaskStatusRequest; -use App\Http\Requests\TaskStatus\CreateTaskStatusRequest; -use App\Http\Requests\TaskStatus\DestroyTaskStatusRequest; -use App\Http\Requests\TaskStatus\ShowTaskStatusRequest; -use App\Http\Requests\TaskStatus\StoreTaskStatusRequest; -use App\Http\Requests\TaskStatus\UpdateTaskStatusRequest; -use App\Models\TaskStatus; use App\Repositories\TaskStatusRepository; use App\Transformers\TaskStatusTransformer; -use App\Utils\Traits\MakesHash; -use Illuminate\Http\Response; +use App\Http\Requests\TaskStatus\EditTaskStatusRequest; +use App\Http\Requests\TaskStatus\ShowTaskStatusRequest; +use App\Http\Requests\TaskStatus\StoreTaskStatusRequest; +use App\Http\Requests\TaskStatus\ActionTaskStatusRequest; +use App\Http\Requests\TaskStatus\CreateTaskStatusRequest; +use App\Http\Requests\TaskStatus\UpdateTaskStatusRequest; +use App\Http\Requests\TaskStatus\DestroyTaskStatusRequest; class TaskStatusController extends BaseController { diff --git a/app/Http/Controllers/VendorController.php b/app/Http/Controllers/VendorController.php index 4ac01af36de1..d13240f82d0e 100644 --- a/app/Http/Controllers/VendorController.php +++ b/app/Http/Controllers/VendorController.php @@ -48,7 +48,7 @@ class VendorController extends BaseController protected $entity_transformer = VendorTransformer::class; /** - * @var Vendorepository + * @var VendorRepository */ protected $vendor_repo; diff --git a/app/Http/Controllers/VendorPortal/DocumentController.php b/app/Http/Controllers/VendorPortal/DocumentController.php index c12820953b25..537326b29c45 100644 --- a/app/Http/Controllers/VendorPortal/DocumentController.php +++ b/app/Http/Controllers/VendorPortal/DocumentController.php @@ -81,6 +81,7 @@ class DocumentController extends Controller { MultiDB::documentFindAndSetDb($document_hash); + /** @var \App\Models\Document $document */ $document = Document::where('hash', $document_hash)->firstOrFail(); $headers = []; @@ -94,6 +95,7 @@ class DocumentController extends Controller public function downloadMultiple(DownloadMultipleDocumentsRequest $request) { + /** @var \Illuminate\Database\Eloquent\Collection $documents */ $documents = Document::whereIn('id', $this->transformKeys($request->file_hash)) ->where('company_id', auth()->guard('vendor')->user()->company_id) ->get(); diff --git a/app/Http/Controllers/VendorPortal/PurchaseOrderController.php b/app/Http/Controllers/VendorPortal/PurchaseOrderController.php index 108cee7667c4..589c7d53dd58 100644 --- a/app/Http/Controllers/VendorPortal/PurchaseOrderController.php +++ b/app/Http/Controllers/VendorPortal/PurchaseOrderController.php @@ -75,10 +75,10 @@ class PurchaseOrderController extends Controller } /** - * Show specific invoice. + * Show specific PurchaseOrder. * - * @param ShowInvoiceRequest $request - * @param Invoice $invoice + * @param ShowPurchaseOrderRequest $request + * @param PurchaseOrder $purchase_order * * @return Factory|View */ diff --git a/app/Models/PurchaseOrderInvitation.php b/app/Models/PurchaseOrderInvitation.php index c41288d95924..be8e8f4dee80 100644 --- a/app/Models/PurchaseOrderInvitation.php +++ b/app/Models/PurchaseOrderInvitation.php @@ -15,6 +15,7 @@ use App\Utils\Ninja; use App\Utils\Traits\Inviteable; use App\Utils\Traits\MakesDates; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Str; @@ -102,49 +103,37 @@ class PurchaseOrderInvitation extends BaseModel return PurchaseOrder::class; } - /** - * @return mixed - */ - public function purchase_order() + public function purchase_order(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(PurchaseOrder::class)->withTrashed(); } - /** - * @return mixed - */ - public function entity() + public function entity(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(PurchaseOrder::class)->withTrashed(); } - /** - * @return mixed - */ - public function contact() + public function contact(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(VendorContact::class, 'vendor_contact_id', 'id')->withTrashed(); } - /** - * @return mixed - */ - public function user() + public function user(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(User::class)->withTrashed(); } - public function company() + public function company(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(Company::class); } - public function getName() + public function getName(): string { return $this->key; } - public function markViewed() + public function markViewed(): void { $this->viewed_date = Carbon::now(); $this->save(); diff --git a/app/Models/VendorContact.php b/app/Models/VendorContact.php index 8f388e4959f4..91201af7a357 100644 --- a/app/Models/VendorContact.php +++ b/app/Models/VendorContact.php @@ -63,9 +63,7 @@ use Laracasts\Presenter\PresentableTrait; * @property-read \App\Models\Company $company * @property-read mixed $contact_id * @property-read mixed $hashed_id - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications * @property-read int|null $notifications_count - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations * @property-read int|null $purchase_order_invitations_count * @property-read \App\Models\User $user * @property-read \App\Models\Vendor $vendor @@ -74,66 +72,10 @@ use Laracasts\Presenter\PresentableTrait; * @method static \Illuminate\Database\Eloquent\Builder|VendorContact newQuery() * @method static \Illuminate\Database\Eloquent\Builder|VendorContact onlyTrashed() * @method static \Illuminate\Database\Eloquent\Builder|VendorContact query() - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereAcceptedTermsVersion($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereAvatar($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereAvatarSize($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereAvatarType($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereCompanyId($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereConfirmationCode($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereConfirmed($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereContactKey($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereCreatedAt($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereCustomValue1($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereCustomValue2($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereCustomValue3($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereCustomValue4($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereDeletedAt($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereEmail($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereEmailVerifiedAt($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereFailedLogins($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereFirstName($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereGoogle2faSecret($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereId($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereIsLocked($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereIsPrimary($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereLastLogin($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereLastName($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereOauthProviderId($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereOauthUserId($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact wherePassword($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact wherePhone($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereRememberToken($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereSendEmail($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereToken($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereUpdatedAt($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereUserId($value) - * @method static \Illuminate\Database\Eloquent\Builder|VendorContact whereVendorId($value) * @method static \Illuminate\Database\Eloquent\Builder|VendorContact withTrashed() * @method static \Illuminate\Database\Eloquent\Builder|VendorContact withoutTrashed() * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations - * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications - * @property-read \Illuminate\Database\Eloquent\Collection $purchase_order_invitations * @mixin \Eloquent */ class VendorContact extends Authenticatable implements HasLocalePreference @@ -213,7 +155,7 @@ class VendorContact extends Authenticatable implements HasLocalePreference return $this->encodePrimaryKey($this->id); } - public function vendor() + public function vendor(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(Vendor::class)->withTrashed(); } @@ -223,12 +165,12 @@ class VendorContact extends Authenticatable implements HasLocalePreference return $this->where('is_primary', true); } - public function company() + public function company(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(Company::class); } - public function user() + public function user(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(User::class)->withTrashed(); } diff --git a/app/Repositories/UserRepository.php b/app/Repositories/UserRepository.php index f5d065a2da33..ce870fe557f1 100644 --- a/app/Repositories/UserRepository.php +++ b/app/Repositories/UserRepository.php @@ -52,14 +52,10 @@ class UserRepository extends BaseRepository if ($unset_company_user) { unset($details['company_user']); } - /** @var \App\Models\User $user */ - $user = auth()->user(); - $company = $user->company(); + + $company = auth()->user()->company(); $account = $company->account; - // if(array_key_exists('oauth_provider_id', $details)) - // unset($details['oauth_provider_id']); - if (request()->has('validated_phone')) { $details['phone'] = request()->input('validated_phone'); $user->verified_phone_number = false; @@ -104,8 +100,8 @@ class UserRepository extends BaseRepository (new CreateCompanyToken($cu->company, $cu->user, 'restored_user'))->handle(); } } else { - $cu->notifications = $data['company_user']['notifications']; - $cu->settings = $data['company_user']['settings']; + $cu->notifications = $data['company_user']['notifications'] ?? ''; + $cu->settings = $data['company_user']['settings'] ?? ''; $cu->save(); } } diff --git a/tests/Feature/UserTest.php b/tests/Feature/UserTest.php index 5d49460132b6..b79644f586a7 100644 --- a/tests/Feature/UserTest.php +++ b/tests/Feature/UserTest.php @@ -224,6 +224,7 @@ class UserTest extends TestCase 'is_admin' => false, 'is_owner' => false, 'permissions' => 'create_client,create_invoice', + 'notifications' => '', ], 'phone' => "", ]; @@ -247,6 +248,7 @@ class UserTest extends TestCase 'is_admin' => false, 'is_owner' => false, 'permissions' => 'create_client,create_invoice', + 'notifications' => '', ], ]; @@ -292,9 +294,6 @@ class UserTest extends TestCase $arr = $response->json(); - // $this->assertNotNull($user->company_user); - // $this->assertEquals($user->company_user->company_id, $this->company->id); - $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token,