auction-scrapper/app/controllers/parse_logs_controller.ts
Vakula Uladimir 12f005e335 init
2025-10-17 11:27:52 +03:00

30 lines
900 B
TypeScript

import type { HttpContext } from '@adonisjs/core/http'
import ParseLog from '#models/parse_log'
export default class ParseLogsController {
/**
* List parse logs with pagination, ordered by latest
* GET /api/parse-logs?page=1&limit=20
*/
async index({ request, response }: HttpContext) {
const page = request.input('page', 1)
const limit = request.input('limit', 20)
const pageNumber = Math.max(1, Number(page))
const limitNumber = Math.min(100, Math.max(1, Number(limit)))
try {
const parseLogs = await ParseLog.query()
.orderBy('started_at', 'desc')
.paginate(pageNumber, limitNumber)
return response.ok(parseLogs.serialize())
} catch (error) {
return response.internalServerError({
error: 'Failed to fetch parse logs',
message: error instanceof Error ? error.message : 'Unknown error',
})
}
}
}