GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
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);
        }
    }
}