%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/geotechnics/api/app/Http/Controllers/Api/v1/
Upload File :
Create Path :
Current File : /var/www/html/geotechnics/api/app/Http/Controllers/Api/v1/ContactRequestsController.php

<?php

namespace App\Http\Controllers\Api\v1;

use App\Http\Controllers\Api\ApiController;
use App\Http\Requests\Api\v1\ContactRequest\ContactRequestRequest;
use App\Models\ContactRequest;
use App\Transformers\ContactRequestTransformer;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;

class ContactRequestsController extends ApiController
{

    public function index(Request $request)
    {
        /** @var LengthAwarePaginator $result */
        $result = ContactRequest::query();

        if ($search = $request->get('search')) {
            $result = $result->where('email', 'like', "%$search%")
                             ->orWhere('name', 'like', "%$search%")
                             ->orWhere('enquiry', 'like', "%$search%");
        }
        $result = $result->orderBy('created_at', 'desc')
                         ->paginate($request->get('perPage'));
        return $this->withPaginated($result, new ContactRequestTransformer());
    }


    public function store(ContactRequestRequest $request)
    {
        /** @var ContactRequest $contactRequest */
        $contactRequest = ContactRequest::query()
                                        ->create($request->only([
                                            'name',
                                            'email',
                                            'enquiry',
                                        ]));

        return $this->item($contactRequest, new ContactRequestTransformer());
    }

    public function destroy(ContactRequest $contactRequest)
    {
        try {
            $contactRequest->delete();
            return response()->json([], 204);
        } catch (\Exception $exception) {
            return $this->wrongArguments([
                'message' => $exception->getMessage(),
            ]);
        }
    }

}

Zerion Mini Shell 1.0