forked from admin/services_core
big update base struktur tahap 1
This commit is contained in:
@@ -3,12 +3,12 @@
|
||||
namespace App\Http\Controllers\Ticket;
|
||||
|
||||
use App\Http\Controllers\ApiController;
|
||||
use App\Http\Requests\Ticket\IndexTicketRequest;
|
||||
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
|
||||
{
|
||||
@@ -16,13 +16,42 @@ class TicketController extends ApiController
|
||||
protected TicketService $service
|
||||
) {}
|
||||
|
||||
public function index(Request $request)
|
||||
public function index(IndexTicketRequest $request)
|
||||
{
|
||||
$tickets = Ticket::latest()->paginate(
|
||||
$request->get('per_page', 10)
|
||||
);
|
||||
$filters = $request->validated();
|
||||
$tickets = Ticket::query()
|
||||
->when(
|
||||
! empty($filters['search']),
|
||||
fn ($query) => $query->where(function ($searchQuery) use ($filters) {
|
||||
$searchQuery->where('ticket_no', 'ILIKE', "%{$filters['search']}%")
|
||||
->orWhere('title', 'ILIKE', "%{$filters['search']}%")
|
||||
->orWhere('description', 'ILIKE', "%{$filters['search']}%");
|
||||
})
|
||||
)
|
||||
->when(
|
||||
! empty($filters['status']),
|
||||
fn ($query) => $query->where('status', $filters['status'])
|
||||
)
|
||||
->when(
|
||||
! empty($filters['priority']),
|
||||
fn ($query) => $query->where('priority', $filters['priority'])
|
||||
)
|
||||
->when(
|
||||
! empty($filters['ticket_type_id']),
|
||||
fn ($query) => $query->where('ticket_type_id', $filters['ticket_type_id'])
|
||||
)
|
||||
->when(
|
||||
! empty($filters['customer_id']),
|
||||
fn ($query) => $query->where('customer_id', $filters['customer_id'])
|
||||
)
|
||||
->latest()
|
||||
->paginate($filters['per_page'] ?? 10);
|
||||
|
||||
return $this->success($tickets);
|
||||
return $this->successPaginated(
|
||||
$tickets,
|
||||
TicketResource::class,
|
||||
'Data Ticket berhasil diambil'
|
||||
);
|
||||
}
|
||||
|
||||
public function store(StoreTicketRequest $request)
|
||||
@@ -67,4 +96,4 @@ class TicketController extends ApiController
|
||||
'Ticket berhasil dibatalkan'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
namespace App\Http\Controllers\Ticket;
|
||||
|
||||
use App\Http\Controllers\ApiController;
|
||||
use App\Models\TicketIncidentType;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use App\Services\Ticket\TicketIncidentTypeService;
|
||||
use App\Http\Resources\TicketIncidentType\TicketIncidentTypeResource;
|
||||
use App\Http\Requests\TicketIncidentType\IndexTicketIncidentTypeRequest;
|
||||
use App\Http\Requests\TicketIncidentType\StoreTicketIncidentTypeRequest;
|
||||
use App\Http\Requests\TicketIncidentType\UpdateTicketIncidentTypeRequest;
|
||||
use App\Http\Resources\TicketIncidentType\TicketIncidentTypeResource;
|
||||
use App\Models\TicketIncidentType;
|
||||
use App\Services\Ticket\TicketIncidentTypeService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class TicketIncidentTypeController extends ApiController
|
||||
{
|
||||
@@ -16,12 +17,12 @@ class TicketIncidentTypeController extends ApiController
|
||||
private TicketIncidentTypeService $service
|
||||
) {}
|
||||
|
||||
public function index(): JsonResponse
|
||||
public function index(IndexTicketIncidentTypeRequest $request): JsonResponse
|
||||
{
|
||||
return $this->success(
|
||||
TicketIncidentTypeResource::collection(
|
||||
$this->service->getAll()
|
||||
)
|
||||
return $this->successPaginated(
|
||||
$this->service->list($request->validated()),
|
||||
TicketIncidentTypeResource::class,
|
||||
'Data Incident Type berhasil diambil'
|
||||
);
|
||||
}
|
||||
|
||||
@@ -74,4 +75,4 @@ class TicketIncidentTypeController extends ApiController
|
||||
'Incident Type berhasil dihapus'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
namespace App\Http\Controllers\Ticket;
|
||||
|
||||
use App\Http\Controllers\ApiController;
|
||||
use App\Http\Requests\TicketType\IndexTicketTypeRequest;
|
||||
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
|
||||
{
|
||||
@@ -16,14 +16,15 @@ class TicketTypeController extends ApiController
|
||||
protected TicketTypeService $service
|
||||
) {}
|
||||
|
||||
public function index(Request $request)
|
||||
public function index(IndexTicketTypeRequest $request)
|
||||
{
|
||||
$data = $this->service->list(
|
||||
$request->all()
|
||||
$request->validated()
|
||||
);
|
||||
|
||||
return $this->success(
|
||||
TicketTypeResource::collection($data),
|
||||
return $this->successPaginated(
|
||||
$data,
|
||||
TicketTypeResource::class,
|
||||
'Data Ticket Type berhasil diambil'
|
||||
);
|
||||
}
|
||||
@@ -71,4 +72,4 @@ class TicketTypeController extends ApiController
|
||||
'Ticket Type berhasil dihapus'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user