Learn by Directing AI
All materials

treks.js

jstreks.js
const express = require('express');
const router = express.Router();
const pool = require('../db');
const logger = require('../middleware/logging').logger;

router.get('/', async (req, res, next) => {
  try {
    const result = await pool.query(
      'SELECT id, name, destination, duration_days, max_group_size, price_npr, price_usd, difficulty FROM treks ORDER BY name'
    );
    logger.info('Treks listed', {
      requestId: req.requestId,
      route: 'GET /api/treks',
      count: result.rows.length
    });
    res.json(result.rows);
  } catch (err) {
    next(err);
  }
});

router.get('/:id', async (req, res, next) => {
  try {
    const { id } = req.params;
    const result = await pool.query(
      'SELECT * FROM treks WHERE id = $1',
      [id]
    );
    if (result.rows.length === 0) {
      logger.warn('Trek not found', {
        requestId: req.requestId,
        route: `GET /api/treks/${id}`,
        trekId: id
      });
      return res.status(404).json({ error: 'Trek not found' });
    }
    logger.info('Trek retrieved', {
      requestId: req.requestId,
      route: `GET /api/treks/${id}`,
      trekName: result.rows[0].name
    });
    res.json(result.rows[0]);
  } catch (err) {
    next(err);
  }
});

module.exports = router;