From a4891aa0de3bb85b5742207bced5d4e994ebdd7e Mon Sep 17 00:00:00 2001 From: Martin Kiragu Date: Sun, 19 Mar 2023 06:31:44 +0300 Subject: [PATCH] added a debugber optional paramenter for addational resource on ListDocument resource --- .../ControllersLogic/ListDocumentLogic.php | 14 +- .../Documents/ListDocumentsController.php | 2 +- app/Http/Resources/CompanyResource.php | 8 +- app/Http/Resources/DocumentResource.php | 23 ++- composer.json | 1 + .../general/elements/ListComponent.vue | 147 ++++++++++-------- storage/debugbar/.gitignore | 2 + 7 files changed, 116 insertions(+), 81 deletions(-) create mode 100644 storage/debugbar/.gitignore diff --git a/app/Classes/Modules/Documents/ControllersLogic/ListDocumentLogic.php b/app/Classes/Modules/Documents/ControllersLogic/ListDocumentLogic.php index 0bd05743..09976d18 100644 --- a/app/Classes/Modules/Documents/ControllersLogic/ListDocumentLogic.php +++ b/app/Classes/Modules/Documents/ControllersLogic/ListDocumentLogic.php @@ -3,6 +3,9 @@ namespace App\Classes\Modules\Documents\ControllersLogic; +use App\Classes\Exceptions\AccessForbiddenException; +use App\Classes\Exceptions\MalformedRequestException; +use App\Classes\Exceptions\RequestValidationException; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Documents\Services\ListsDocuments; use App\Classes\Modules\Documents\Standards\Rules\CanListDocuments; @@ -45,19 +48,20 @@ class ListDocumentLogic extends AbstractControllerLogic /** * @param Request $request * @return JsonResponse - * @throws \App\Classes\Exceptions\AccessForbiddenException - * @throws \App\Classes\Exceptions\MalformedRequestException - * @throws \App\Classes\Exceptions\RequestValidationException + * @throws AccessForbiddenException + * @throws MalformedRequestException + * @throws RequestValidationException */ public function logic(Request $request) : JsonResponse { $this->canListDocuments->passes(); - $query = $this->listsDocuments->execute(array_merge($this->listsDocuments->deserializeFilters($request->input('filters')), ['with_owner' => true])); + $query = $this->listsDocuments->execute(array_merge($this->listsDocuments->deserializeFilters($request->input('filters')), ['with_owner' => true] + )); return $this->collectionResponse(DocumentResource::collection($query)); } -} \ No newline at end of file +} diff --git a/app/Http/Controllers/Documents/ListDocumentsController.php b/app/Http/Controllers/Documents/ListDocumentsController.php index a440737d..7a1060ec 100644 --- a/app/Http/Controllers/Documents/ListDocumentsController.php +++ b/app/Http/Controllers/Documents/ListDocumentsController.php @@ -17,4 +17,4 @@ class ListDocumentsController return $logic->execute($request); } -} \ No newline at end of file +} diff --git a/app/Http/Resources/CompanyResource.php b/app/Http/Resources/CompanyResource.php index c896c154..94e05e2f 100644 --- a/app/Http/Resources/CompanyResource.php +++ b/app/Http/Resources/CompanyResource.php @@ -18,7 +18,7 @@ class CompanyResource extends JsonResource */ public function toArray($request) { - $companyModule = $this->companyModules()->first(); +/* $companyModule = $this->companyModules()->first();*/ return [ 'id' => $this->id, 'hash_id' => Crypt::encryptString($this->id), @@ -28,13 +28,13 @@ class CompanyResource extends JsonResource 'type' => (int) $this->type, 'business_type' => (int) $this->business_type, 'status' => (int) $this->status, - 'segments' => SegmentResource::collection($companyModule->connections()->first()->segments), + /* 'segments' => SegmentResource::collection($companyModule->connections()->first()->segments), 'contact' => new ContactResource ($this->when($this->has('contacts'), $this->contacts->first())), 'employee' => new UserResource($companyModule->employees()->first()), 'company_module' => new CompanyModuleResource($companyModule), 'last_order' => $companyModule->type === 7 ? new DeliveryOrderResource($companyModule->orders()->orderBy('id', 'DESC')->first()) : new OrderResource($companyModule->orders()->orderBy('id', 'DESC')->first()), - 'order_count' => $companyModule->orders()->count(), - 'identification' => new DocumentResource($this->documents->whereIn('document_type', DocumentType::IDENTIFICATION_DOCUMENTS)->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED])->first()), + 'order_count' => $companyModule->orders()->count(),*/ +/* 'identification' => new DocumentResource($this->documents->whereIn('document_type', DocumentType::IDENTIFICATION_DOCUMENTS)->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED])->first()),*/ 'created_at' => $this->created_at->format('d-m-Y') ]; diff --git a/app/Http/Resources/DocumentResource.php b/app/Http/Resources/DocumentResource.php index 2595ed55..d383948a 100644 --- a/app/Http/Resources/DocumentResource.php +++ b/app/Http/Resources/DocumentResource.php @@ -6,6 +6,7 @@ use App\Models\Company; use App\Models\Document; use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; +use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; class DocumentResource extends JsonResource @@ -13,19 +14,31 @@ class DocumentResource extends JsonResource /** * Transform the resource into an array. * - * @param \Illuminate\Http\Request $request + * @param Request $request * @return array */ - public function toArray($request) + public function toArray($request): array { return [ 'id' => $this->id, 'reference' => $this->reference, - 'status' => (int) $this->status, + 'status' => (int)$this->status, 'document_type' => $this->document_type, - 'owner' => new CompanyResource($this->whenLoaded('owner')), - 'files' => FileResource::collection($this->files), + 'owner' => new CompanyResource($this->whenLoaded('owner')), + 'files' => $this->when($this->shouldIncludeFiles(false), FileResource::collection($this->files)), 'created_at' => Carbon::parse($this->created_at)->format('d-m-Y h:i:s A') ]; } + + /** + * include only when should include file, to be loaded if needed in the UI + * @param bool $includeFile + * @return bool + */ + private function shouldIncludeFiles(bool $includeFile): bool + { + return $includeFile; + } + + } diff --git a/composer.json b/composer.json index d5449aa3..6f6db509 100644 --- a/composer.json +++ b/composer.json @@ -29,6 +29,7 @@ "tymon/jwt-auth": "^1.0" }, "require-dev": { + "barryvdh/laravel-debugbar": "^3.7", "barryvdh/laravel-ide-helper": "^2.12", "codeception/codeception": "^4.2", "codeception/module-asserts": "^2.0", diff --git a/resources/assets/vue/components/general/elements/ListComponent.vue b/resources/assets/vue/components/general/elements/ListComponent.vue index bd1c759c..7785ecf4 100644 --- a/resources/assets/vue/components/general/elements/ListComponent.vue +++ b/resources/assets/vue/components/general/elements/ListComponent.vue @@ -1,25 +1,34 @@ diff --git a/storage/debugbar/.gitignore b/storage/debugbar/.gitignore new file mode 100644 index 00000000..d6b7ef32 --- /dev/null +++ b/storage/debugbar/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore