42 lines
1.2 KiB
PHP
42 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Enums\CommentStatus;
|
|
use App\Http\Requests\CommentPostRequest;
|
|
use App\Models\Comment;
|
|
use App\Models\Flight;
|
|
use App\Models\Tour;
|
|
|
|
class CommentController extends Controller
|
|
{
|
|
public function storeFlight(CommentPostRequest $request, Flight $flight)
|
|
{
|
|
$this->store($request, ['flight_id' => $flight->id]);
|
|
|
|
return back()->withErrors([ 'success' => 'نظر شما با موفقیت ثبت شد.' ]);
|
|
}
|
|
|
|
public function storeTour(CommentPostRequest $request, Tour $tour)
|
|
{
|
|
$this->store($request, ['tour_id' => $tour->id]);
|
|
|
|
return back()->withErrors([ 'success' => 'نظر شما با موفقیت ثبت شد.' ]);
|
|
}
|
|
|
|
private function store(CommentPostRequest $request, array $relation)
|
|
{
|
|
$data = $request->validated();
|
|
|
|
Comment::create([
|
|
$relation,
|
|
'user_id' => auth()->id(),
|
|
'guest_name' => auth()->check() ? null : $data['guest_name'],
|
|
'guest_email' => auth()->check() ? null : $data['guest_email'],
|
|
'comment' => $data['comment'],
|
|
'status' => CommentStatus::APPROVED,
|
|
]);
|
|
}
|
|
|
|
}
|