Co-authored-by: Cursor <[email protected]>
This commit is contained in:
lejay
2026-05-28 07:20:38 +02:00
co-authored by Cursor
parent 6923c319a1
commit 6c0d7e47b8
81 changed files with 21780 additions and 2986 deletions
+55
View File
@@ -0,0 +1,55 @@
import pool, { run } from '../db/index.js';
export async function getSuppliers(req, res) {
try {
const { rows } = await pool.query(
'SELECT id, code, name, email, type, active, created_at FROM suppliers ORDER BY name'
);
res.json(rows);
} catch (err) {
res.status(500).json({ error: err.message });
}
}
export async function createSupplier(req, res) {
try {
const { code, name, email, type, active = 1 } = req.body || {};
if (!code || !name || !email || !type) {
return res.status(400).json({ error: 'code, name, email et type sont requis.' });
}
await run(
'INSERT INTO suppliers (code, name, email, type, active) VALUES ($1, $2, $3, $4, $5)',
[code, name, email, type, active]
);
const { rows } = await pool.query('SELECT * FROM suppliers ORDER BY id DESC LIMIT 1');
res.status(201).json(rows[0]);
} catch (err) {
res.status(500).json({ error: err.message });
}
}
export async function updateSupplier(req, res) {
try {
const { id } = req.params;
const { name, email, type, active } = req.body || {};
await run(
'UPDATE suppliers SET name = $1, email = $2, type = $3, active = $4 WHERE id = $5',
[name, email, type, active, id]
);
const { rows } = await pool.query('SELECT * FROM suppliers WHERE id = $1', [id]);
if (rows.length === 0) return res.status(404).json({ error: 'Fournisseur introuvable.' });
res.json(rows[0]);
} catch (err) {
res.status(500).json({ error: err.message });
}
}
export async function deleteSupplier(req, res) {
try {
const { id } = req.params;
await run('DELETE FROM suppliers WHERE id = $1', [id]);
res.status(204).end();
} catch (err) {
res.status(500).json({ error: err.message });
}
}