From 51b426f0b4bb7c7db1f8cb7be0205aa7f04ec350 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 4 Dec 2024 22:15:20 +0000 Subject: [PATCH] Added accessory transformer to assets transformer Signed-off-by: snipe --- app/Http/Transformers/AssetsTransformer.php | 44 ++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/app/Http/Transformers/AssetsTransformer.php b/app/Http/Transformers/AssetsTransformer.php index 6e3f3c2c95..c5110ac8ee 100644 --- a/app/Http/Transformers/AssetsTransformer.php +++ b/app/Http/Transformers/AssetsTransformer.php @@ -3,12 +3,14 @@ namespace App\Http\Transformers; use App\Helpers\Helper; +use App\Models\Accessory; +use App\Models\AccessoryCheckout; use App\Models\Asset; use App\Models\Setting; use Illuminate\Support\Facades\Gate; use Illuminate\Database\Eloquent\Collection; use Carbon\Carbon; -use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Storage; class AssetsTransformer { @@ -285,4 +287,44 @@ class AssetsTransformer return $array; } + + public function transformCheckedoutAccessories($accessory_checkouts, $total) + { + + $array = []; + foreach ($accessory_checkouts as $checkout) { + $array[] = self::transformCheckedoutAccessory($checkout); + } + + return (new DatatablesTransformer)->transformDatatables($array, $total); + } + + + public function transformCheckedoutAccessory(AccessoryCheckout $accessory_checkout) + { + + $array = [ + 'id' => $accessory_checkout->id, + 'accessory' => [ + 'id' => $accessory_checkout->accessory->id, + 'name' => $accessory_checkout->accessory->name, + ], + 'image' => ($accessory_checkout->accessory->image) ? Storage::disk('public')->url('accessories/'.e($accessory_checkout->accessory->image)) : null, + 'note' => $accessory_checkout->note ? e($accessory_checkout->note) : null, + 'created_by' => $accessory_checkout->adminuser ? [ + 'id' => (int) $accessory_checkout->adminuser->id, + 'name'=> e($accessory_checkout->adminuser->present()->fullName), + ]: null, + 'created_at' => Helper::getFormattedDateObject($accessory_checkout->created_at, 'datetime'), + ]; + + $permissions_array['available_actions'] = [ + 'checkout' => false, + 'checkin' => Gate::allows('checkin', Accessory::class), + ]; + + $array += $permissions_array; + return $array; + } + }