diff --git a/src/Http/Controllers/AssignVendorController.php b/src/Http/Controllers/AssignVendorController.php index baa4759..903a714 100644 --- a/src/Http/Controllers/AssignVendorController.php +++ b/src/Http/Controllers/AssignVendorController.php @@ -16,7 +16,7 @@ class AssignVendorController extends Controller /** * Store a newly created resource in storage. */ - public function available(string $id) + public function available(string $id): \Illuminate\Http\JsonResponse|\Fintech\Remit\Http\Resources\AssignableVendorCollection { try { @@ -28,9 +28,11 @@ public function available(string $id) $serviceVendors = \Fintech\Business\Facades\Business::serviceVendor()->list([ 'service_id_array' => [$order->service_id], + 'enabled' => true, 'paginate' => false, ]); - dd($serviceVendors); + + return new \Fintech\Remit\Http\Resources\AssignableVendorCollection($serviceVendors); } catch (ModelNotFoundException $exception) { diff --git a/src/Http/Resources/AssignableVendorCollection.php b/src/Http/Resources/AssignableVendorCollection.php new file mode 100644 index 0000000..bca8192 --- /dev/null +++ b/src/Http/Resources/AssignableVendorCollection.php @@ -0,0 +1,48 @@ +collection->map(function ($vendor) { + return [ + 'id' => $vendor->getKey() ?? null, + 'service_vendor_name' => $vendor->service_vendor_name ?? null, + 'service_vendor_slug' => $vendor->service_vendor_slug ?? null, + 'service_vendor_data' => $vendor->service_vendor_data ?? null, + 'service_vendor_logo_svg' => $vendor->getFirstMediaUrl('logo_svg') ?? null, + 'service_vendor_logo_png' => $vendor->getFirstMediaUrl('logo_png') ?? null, + 'enabled' => $vendor->enabled ?? null, + ]; + })->toArray(); + } + + /** + * Get additional data that should be returned with the resource array. + * + * @return array + */ + public function with(Request $request): array + { + return [ + 'options' => [ + 'dir' => Constant::SORT_DIRECTIONS, + 'per_page' => Constant::PAGINATE_LENGTHS, + 'sort' => ['id', 'name', 'created_at', 'updated_at'], + ], + 'query' => $request->all(), + ]; + } +}