FaqController.php 1.77 KB
<?php

namespace App\Http\Controllers;

use App\Enums\FaqTarget;
use App\Http\Requests\FaqActionRequest;
use App\Models\Faq;
use Illuminate\Http\RedirectResponse;

class FaqController extends Controller
{
    public function get(string $userType = null) {
        return Faq::query()
            ->when($userType, function ($query, $userType) {
                $query->where('target', $userType);
            })
            ->where('active', true)
            ->get();
    }

    public function showListForAdmin(){

        return view(
            'admin.faq.list',
            [
                'questions' => $this->get(),
            ]
        );
    }

    public function showListForUser()
    {
        return view(
            'employers.faq',
            [
                'questionsEmployer' => $this->get(FaqTarget::EMPLOYER->value),
                'questionsEmployee' => $this->get(FaqTarget::EMPLOYEE->value)
            ]
        );
    }

    public function create()
    {
        return view('admin.faq.create');
    }

    public function store(FaqActionRequest $request)
    {
        Faq::query()->create($request->toArray());

        return response()->redirectTo(route('admin.faq.list'));
    }

    public function edit(int $id)
    {
        return view('admin.faq.update', ['question' => Faq::find($id)]);
    }

    public function update(FaqActionRequest $request, int $id)
    {
        Faq::query()
            ->where('id', $id)
            ->update($request->all(['question', 'target', 'answer']));

        return response()->redirectTo(route('admin.faq.list'));
    }

    public function destroy(int $id): RedirectResponse
    {
        Faq::query()
            ->where('id', $id)
            ->delete();

        return response()->redirectTo(route('admin.faq.list'));
    }
}