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/api.ayokah.co.uk/app/Http/Controllers/TicketController.php
<?php

namespace App\Http\Controllers;

use App\Models\Ticket;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller; 

class TicketController extends Controller
{
    public function store(Request $request)
    {
        try {
            $validatedData = $request->validate([
                'title' => 'required|string|max:255',
                'description' => 'required|string',
                'user_id' => 'required|string',
            ]);

            $ticket = Ticket::create([
                'user_id' => $validatedData['user_id'],
                'title' => $validatedData['title'],
                'description' => $validatedData['description'],
            ]);
            return response()->json(['status' => 'success', 'message' => $ticket], 200);
        } catch (\Throwable $th) {
            return response()->json(['status' => 'error', 'message' => $th->getMessage()], 200);
        }
    }

    public function update(Request $request, Ticket $ticket)
    {
        try {
            $validatedData = $request->validate([
                'id' => 'sometimes|string|exists:tickets,id',
                'user_id' => 'sometimes|string|exists:tickets,user_id',
                'title' => 'sometimes|string|max:255',
                'description' => 'sometimes|string',
                'status' => 'sometimes|in:open,closed,pending',
            ]);

            $ticket->update($validatedData);
            return response()->json(['status' => 'success', 'message' => $ticket], 200);
        } catch (\Throwable $th) {
            return response()->json(['status' => 'error', 'message' => $th->getMessage()], 400);
        }
    }

    public function destroy(Request $request)
    {
        try {
            $validatedData = $request->validate([
                'id' => 'required|exists:tickets,id',
            ]);

            $ticket = Ticket::findOrFail($validatedData['id']);
            $ticket->delete();

            return response()->json(['status' => 'success', 'message' => 'Ticket deleted successfully'], 200);
        } catch (\Throwable $th) {
            return response()->json(['status' => 'error', 'message' => $th->getMessage()], 400);
        }
    }

    public function list()
    {
        $tickets = Ticket::all();
        return response()->json(['status' => 'success', 'message' => $tickets], 200);
    }

}