%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/shaban/duassis/api/app/Http/Controllers/Api/v1/
Upload File :
Create Path :
Current File : //var/www/html/shaban/duassis/api/app/Http/Controllers/Api/v1/AppFieldsController.php

<?php

namespace App\Http\Controllers\Api\v1;

use App\Http\Controllers\Api\ApiController;
use App\Models\App\AppField;
use App\Transformers\FieldTransformer;
use Illuminate\Http\Request;

class AppFieldsController extends ApiController
{
    /**
     * @var FieldTransformer
     */
    private $transformer;

    /**
     * FieldsController constructor.
     * @param FieldTransformer $transformer
     */
    public function __construct(FieldTransformer $transformer)
    {
        $this->transformer = $transformer;
    }

    public function index(Request $request)
    {
        $fields = AppField::query();

        $latitude = $request->get('latitude');
        $longitude = $request->get('longitude');
        $distance = $request->get('distance');
        if ($latitude && $longitude) {
            $fields = $fields->isWithinMaxDistance([
                'latitude'  => $latitude,
                'longitude' => $longitude,
            ], $distance);
        }

        if ($category = $request->get('category')) {
            $fields = $fields->whereHas('categories', function ($q) use ($category) {
                $q->where('category_id', $category);
            });
        }

        if ($search = $request->get('search')) {
            $language = app()->getLocale();
            $fields = $fields->where("name->$language", 'like', "%$search%");
            $fields = $fields->orWhere("description->$language", 'like', "%$search%");
        }
        $fields = $fields->paginate($request->get('perPage'));
        return $this->withPaginated($fields, $this->transformer);
    }

    public function show(AppField $field)
    {
        return $this->item($field, $this->transformer);
    }

}

Zerion Mini Shell 1.0