File: /var/www/console.fixgini.com/app/Http/Controllers/Seller/GigFaqController.php
<?php
namespace App\Http\Controllers\Seller;
use App\Models\GigFaq;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class GigFaqController extends Controller
{
public function store(Request $request)
{
try {
$user = Auth::user();
$validatedData = $request->validate([
'gig_id' => 'required|string|exists:gigs,id',
'question' => 'required|string|max:255',
'answer' => 'required|string',
]);
Log::info($validatedData);
// Add the authenticated user's ID to the data
$validatedData['user_id'] = $user->id;
$gig_faq = GigFaq::create($validatedData);
return response()->json(['status' => 'success', 'message' => $gig_faq], 200);
} catch (\Throwable $th) {
return response()->json(['status' => 'error', 'message' => $th->getMessage()], 401);
}
}
public function list(Request $request)
{
try {
$validatedData = $request->validate([
'gig_id' => 'required|exists:gigs,id',
]);
Log::info($validatedData);
$faqs = GigFaq::with('gigs')->where('gig_id', $validatedData['gig_id'])->latest()->get();
if ($faqs) {
return response()->json(['status' => 'success', 'message' => 'Gig Faq found successfully', 'data' => $faqs], 200);
}
} catch (\Throwable $th) {
return response()->json(['status' => 'error', 'message' => 'Gig Faq not found successfully', 'data' => $th->getMessage()], 400);
}
}
public function userGigFaqs(Request $request)
{
try {
$validatedData = $request->validate([
'user_id' => 'required|exists:gig_faqs,user_id',
]);
Log::info($validatedData);
$faqs = GigFaq::with('gigs')->where('user_id', $validatedData['user_id'])->latest()->get();
if ($faqs) {
return response()->json(['status' => 'success', 'message' => 'Gig Faq found successfully', 'data' => $faqs], 200);
}
} catch (\Throwable $th) {
return response()->json(['status' => 'error', 'message' => 'Gig Faq not found successfully', 'data' => $th->getMessage()], 400);
}
}
public function query(Request $request)
{
try {
$validatedData = $request->validate([
'uuid' => 'required|exists:gig_faqs,uuid',
]);
$faq = GigFaq::with('gigs')->where('uuid', $validatedData['uuid'])->first();
if ($faq) {
return response()->json(['status' => 'success', 'message' => 'Gig Faq found successfully', 'data' => $faq], 200);
}
} catch (\Throwable $th) {
return response()->json(['status' => 'error', 'message' => 'Gig Faq not found successfully', 'data' => $th->getMessage()], 400);
}
}
public function update(Request $request)
{
try {
// Validate the incoming request data
$validatedData = $request->validate([
'id' => 'required|exists:gigs,id',
'question' => 'required|string|max:255',
'answer' => 'required|string',
'status' => 'required|in:active,inactive',
]);
// Find the Gig FAQ by ID
$gig_faq = GigFaq::find($validatedData['id']);
if ($gig_faq) {
$gig_faq->update($validatedData);
return response()->json(['status' => 'success', 'message' => $gig_faq], 200);
}else {
return response()->json(['status' => 'error', 'message' =>'Not found!'], 404);
}
} catch (\Throwable $th) {
return response()->json(['status' => 'error', 'message' => $th->getMessage()], 401);
}
}
public function destroy(Request $request)
{
try {
$validatedData = $request->validate([
'id' => 'required|exists:gig_faqs,id',
]);
// Find the Gig FAQ by ID
$gig_faq = GigFaq::findOrFail($validatedData['id']);
// Delete the Gig FAQ
$gig_faq->delete();
// Return a success response
return response()->json(['status' => 'success', 'message' => 'Gig FAQ deleted successfully'], 200);
} catch (\Throwable $th) {
// Return an error response
return response()->json(['status' => 'error', 'message' => $th->getMessage()], 401);
}
}
}