UserAccessLogController.php 888 B

123456789101112131415161718192021222324252627
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Resources\UserAccessLogResource;
  4. use App\Services\UserAccessLogService;
  5. use Illuminate\Http\JsonResponse;
  6. use Illuminate\Http\Request;
  7. class UserAccessLogController extends Controller
  8. {
  9. public function __construct(protected UserAccessLogService $service) {}
  10. public function index(Request $request): JsonResponse
  11. {
  12. $filters = $request->only(['type', 'date_from', 'date_to']);
  13. $perPage = min((int) $request->get('per_page', 10), 100);
  14. $paginator = $this->service->getAllPaginated($filters, $perPage);
  15. return $this->successResponse(payload: [
  16. 'data' => UserAccessLogResource::collection($paginator->items()),
  17. 'total' => $paginator->total(),
  18. 'from' => $paginator->firstItem() ?? 0,
  19. 'to' => $paginator->lastItem() ?? 0,
  20. ]);
  21. }
  22. }