riddhiman commited on
Commit
0861f14
·
verified ·
1 Parent(s): a6220b5

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +10 -4
server.js CHANGED
@@ -19,8 +19,9 @@ function isSupportedFormat(filename) {
19
  }
20
 
21
  app.get('/tracks', async (req, res) => {
 
22
  const pageNumber = parseInt(req.query.page) || 1;
23
- const pageSize = 5; // Number of items per page
24
 
25
  fs.readdir('music', async (err, files) => {
26
  if (err) {
@@ -28,12 +29,17 @@ app.get('/tracks', async (req, res) => {
28
  return res.sendStatus(500);
29
  }
30
 
31
- const filteredFiles = files.filter(file => isSupportedFormat(file));
 
 
 
 
 
32
  const pageStart = (pageNumber - 1) * pageSize;
33
  const pageEnd = pageStart + pageSize;
34
 
35
- // Slice files for the requested page
36
- const pagedFiles = filteredFiles.slice(pageStart, pageEnd);
37
 
38
  const trackDetails = [];
39
  for (const file of pagedFiles) {
 
19
  }
20
 
21
  app.get('/tracks', async (req, res) => {
22
+ const searchQuery = (req.query.search || '').toLowerCase();
23
  const pageNumber = parseInt(req.query.page) || 1;
24
+ const pageSize = 5;
25
 
26
  fs.readdir('music', async (err, files) => {
27
  if (err) {
 
29
  return res.sendStatus(500);
30
  }
31
 
32
+ // If there's a search query, filter files by it
33
+ let filteredFiles = files.filter(file => isSupportedFormat(file));
34
+ if (searchQuery) {
35
+ filteredFiles = filteredFiles.filter(file => file.toLowerCase().includes(searchQuery));
36
+ }
37
+
38
  const pageStart = (pageNumber - 1) * pageSize;
39
  const pageEnd = pageStart + pageSize;
40
 
41
+ // Slice files for pagination after filtering, ONLY if not searching. If searching, ignore pagination and send first 5 results.
42
+ const pagedFiles = filteredFiles.slice(searchQuery ? 0 : pageStart, searchQuery ? pageSize : pageEnd);
43
 
44
  const trackDetails = [];
45
  for (const file of pagedFiles) {