Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
LogsController
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 1
 index
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace App\Http\Controllers\Api\V1;
4
5use App\Models\Log;
6use Illuminate\Http\JsonResponse;
7use Illuminate\Http\Request;
8
9class LogsController extends BaseController
10{
11    /**
12     * Display a listing of logs
13     */
14    public function index(Request $request): JsonResponse
15    {
16        try {
17            $perPage = min($request->get('per_page', 20), 100);
18            $level = $request->get('level');
19            
20            $query = Log::orderBy('created_at', 'desc');
21            
22            if ($level) {
23                $query->where('level', $level);
24            }
25            
26            $logs = $query->paginate($perPage);
27
28            return $this->sendResponse([
29                'logs' => $logs->items(),
30                'pagination' => [
31                    'current_page' => $logs->currentPage(),
32                    'last_page' => $logs->lastPage(),
33                    'per_page' => $logs->perPage(),
34                    'total' => $logs->total(),
35                    'from' => $logs->firstItem(),
36                    'to' => $logs->lastItem(),
37                ],
38            ], 'Logs retrieved successfully.');
39        } catch (\Exception $e) {
40            return $this->sendError('Failed to retrieve logs: ' . $e->getMessage(), [], 500);
41        }
42    }
43}