Add remaining templates elements

This commit is contained in:
2025-02-24 00:02:27 -05:00
parent f628774267
commit 441a2c74ad
10 changed files with 1446 additions and 331 deletions

View File

@@ -1,5 +1,5 @@
const express = require('express');
const { Pool } = require('pg');
const { getPool } = require('../utils/db');
const dotenv = require('dotenv');
const path = require('path');
@@ -7,23 +7,14 @@ dotenv.config({ path: path.join(__dirname, "../../.env") });
const router = express.Router();
// Initialize PostgreSQL connection pool
const pool = new Pool({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
// Add SSL if needed (based on your environment)
...(process.env.NODE_ENV === 'production' && {
ssl: {
rejectUnauthorized: false
}
})
});
// Get all templates
router.get('/', async (req, res) => {
try {
const pool = getPool();
if (!pool) {
throw new Error('Database pool not initialized');
}
const result = await pool.query(`
SELECT * FROM templates
ORDER BY company ASC, product_type ASC
@@ -42,6 +33,11 @@ router.get('/', async (req, res) => {
router.get('/:company/:productType', async (req, res) => {
try {
const { company, productType } = req.params;
const pool = getPool();
if (!pool) {
throw new Error('Database pool not initialized');
}
const result = await pool.query(`
SELECT * FROM templates
WHERE company = $1 AND product_type = $2
@@ -89,6 +85,11 @@ router.post('/', async (req, res) => {
return res.status(400).json({ error: 'Company and Product Type are required' });
}
const pool = getPool();
if (!pool) {
throw new Error('Database pool not initialized');
}
const result = await pool.query(`
INSERT INTO templates (
company,
@@ -176,6 +177,11 @@ router.put('/:id', async (req, res) => {
return res.status(400).json({ error: 'Company and Product Type are required' });
}
const pool = getPool();
if (!pool) {
throw new Error('Database pool not initialized');
}
const result = await pool.query(`
UPDATE templates
SET
@@ -244,6 +250,11 @@ router.put('/:id', async (req, res) => {
router.delete('/:id', async (req, res) => {
try {
const { id } = req.params;
const pool = getPool();
if (!pool) {
throw new Error('Database pool not initialized');
}
const result = await pool.query('DELETE FROM templates WHERE id = $1 RETURNING *', [id]);
if (result.rows.length === 0) {