1
0

Ubah dari Swagger ke Dedoc lalu buat API Ticket dan TicketType

This commit is contained in:
Wian Drs
2026-06-20 00:12:19 +07:00
parent 2f805a233d
commit 2dc461ae89
1283 changed files with 36405 additions and 89470 deletions
+10
View File
@@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers;
use App\Traits\ApiResponse;
class ApiController extends Controller
{
use ApiResponse;
}
+1 -29
View File
@@ -5,38 +5,10 @@ namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use OpenApi\Attributes as OA;
class AuthController extends Controller
{
#[OA\Post(
path: "/api/login",
summary: "Login User",
tags: ["Authentication"]
)]
#[OA\RequestBody(
required: true,
content: new OA\JsonContent(
required: ["email", "password"],
properties: [
new OA\Property(
property: "email",
type: "string",
example: "admin@test.co.id"
),
new OA\Property(
property: "password",
type: "string",
example: "123456"
)
]
)
)]
#[OA\Response(
response: 200,
description: "Login Success"
)]
public function login(Request $request)
{
$request->validate([
@@ -0,0 +1,70 @@
<?php
namespace App\Http\Controllers\Ticket;
use App\Http\Controllers\ApiController;
use App\Http\Requests\Ticket\StoreTicketRequest;
use App\Http\Requests\Ticket\UpdateTicketRequest;
use App\Http\Resources\Ticket\TicketResource;
use App\Models\Ticket;
use App\Services\Ticket\TicketService;
use Illuminate\Http\Request;
class TicketController extends ApiController
{
public function __construct(
protected TicketService $service
) {}
public function index(Request $request)
{
$tickets = Ticket::latest()->paginate(
$request->get('per_page', 10)
);
return $this->success($tickets);
}
public function store(StoreTicketRequest $request)
{
$ticket = $this->service->create(
$request->validated()
);
return $this->created(
new TicketResource($ticket),
'Ticket berhasil dibuat'
);
}
public function show(Ticket $ticket)
{
return $this->success(
new TicketResource($ticket)
);
}
public function update(
UpdateTicketRequest $request,
Ticket $ticket
) {
$ticket = $this->service->update(
$ticket,
$request->validated()
);
return $this->updated(
new TicketResource($ticket),
'Ticket berhasil diperbarui'
);
}
public function destroy(Ticket $ticket)
{
$this->service->delete($ticket);
return $this->deleted(
'Ticket berhasil dibatalkan'
);
}
}
@@ -0,0 +1,70 @@
<?php
namespace App\Http\Controllers\Ticket;
use App\Http\Controllers\ApiController;
use App\Http\Requests\TicketType\StoreTicketTypeRequest;
use App\Http\Requests\TicketType\UpdateTicketTypeRequest;
use App\Http\Resources\TicketType\TicketTypeResource;
use App\Models\TicketType;
use App\Services\Ticket\TicketTypeService;
use Illuminate\Http\Request;
class TicketTypeController extends ApiController
{
public function __construct(
protected TicketTypeService $service
) {}
public function index(Request $request)
{
$data = TicketType::latest()->paginate(
$request->get('per_page', 10)
);
return $this->success($data);
}
public function store(StoreTicketTypeRequest $request)
{
$type = $this->service->create(
$request->validated()
);
return $this->created(
new TicketTypeResource($type),
'Ticket Type berhasil dibuat'
);
}
public function show(TicketType $ticket_type)
{
return $this->success(
new TicketTypeResource($ticket_type)
);
}
public function update(
UpdateTicketTypeRequest $request,
TicketType $ticket_type
) {
$type = $this->service->update(
$ticket_type,
$request->validated()
);
return $this->updated(
new TicketTypeResource($type),
'Ticket Type berhasil diupdate'
);
}
public function destroy(TicketType $ticket_type)
{
$this->service->delete($ticket_type);
return $this->deleted(
'Ticket Type berhasil dihapus'
);
}
}