56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
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 });
|
|
}
|
|
}
|