import {Request, Response} from 'express'; import {LESSONS} from "./db-data"; import {setTimeout} from "timers"; export function searchLessons(req: Request, res: Response) { console.log('Searching for lessons ...'); const queryParams = req.query; const courseId = queryParams.courseId, filter = queryParams.filter || '', sortOrder = queryParams.sortOrder || 'asc', pageNumber = parseInt(queryParams.pageNumber) || 0, pageSize = parseInt(queryParams.pageSize); let lessons = Object.values(LESSONS).filter(lesson => lesson.courseId == courseId).sort((l1, l2) => l1.id - l2.id); if (filter) { lessons = lessons.filter(lesson => lesson.description.trim().toLowerCase().search(filter.toLowerCase()) >= 0); } if (sortOrder == "desc") { lessons = lessons.reverse(); } const initialPos = pageNumber * pageSize; console.log(`Retrieving lessons page starting at position ${initialPos}, page size ${pageSize} for course ${courseId}`); const lessonsPage = lessons.slice(initialPos, initialPos + pageSize); res.status(200).json(lessonsPage); }