EverydayTech Platform - Developer Reference
Complete Source Code Documentation - All Applications
Loading...
Searching...
No Matches
orders.js
Go to the documentation of this file.
1/**
2 * @file orders.js
3 * @module OrdersRoutes
4 * @description Order management API routes. Retrieves order records with tenant filtering. Basic endpoint for order history and tracking.
5 * @see {@link ../services/db} for database connection
6 * @see {@link ../middleware/auth} for authentication middleware
7 * @see {@link ../middleware/tenant} for tenant context utilities
8 * @apiDefine OrdersGroup Orders
9 * @apiGroup Orders
10 * @apiHeader {string} Authorization Bearer token required.
11 * @apiError (Error 401) Unauthorized Missing or invalid token.
12 * @apiError (Error 500) ServerError Internal server error.
13 */
14
15const express = require('express');
16const router = express.Router();
17const pool = require('../services/db');
18const authenticateToken = require('../middleware/auth');
19
20const { getTenantFilter } = require('../middleware/tenant');
21
22// Define your routes for orders here
23
24/**
25 * @api {get} /orders List all orders
26 * @apiName ListOrders
27 * @apiGroup Orders
28 * @apiDescription Retrieve all orders for the current tenant, ordered by creation date (newest first). Returns complete order records with tenant filtering applied automatically.
29 * @apiSuccess {object[]} orders Array of order objects.
30 * @apiSuccess {number} orders.order_id Order ID.
31 * @apiSuccess {Date} orders.created_at Order creation timestamp.
32 * @apiExample {curl} Example usage:
33 * curl -H "Authorization: Bearer <token>" https://api.example.com/orders
34 */
35router.get('/', authenticateToken, async (req, res) => {
36 try {
37 const { clause: tenantClause, params: tenantParams } = getTenantFilter(req);
38 let query = `SELECT * FROM orders`;
39 if (tenantClause) {
40 query += ` WHERE ${tenantClause}`;
41 }
42 query += ' ORDER BY created_at DESC';
43 const result = await pool.query(query, tenantParams);
44 res.json(result.rows);
45 } catch (err) {
46 console.error('Error fetching orders:', err);
47 res.status(500).send('Server error');
48 }
49});
50
51
52module.exports = router;