49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
// Lokasyon (depo/şube) rotaları
|
||
const router = require('express').Router();
|
||
const store = require('../models/store');
|
||
const lokasyonModel = require('../models/lokasyon');
|
||
|
||
// Tüm lokasyonları listele
|
||
router.get('/', (req, res) => {
|
||
res.json(lokasyonModel.tumu());
|
||
});
|
||
|
||
// Tek lokasyon
|
||
router.get('/:id', (req, res) => {
|
||
const lok = lokasyonModel.bul(req.params.id);
|
||
if (!lok) return res.status(404).json({ hata: 'Lokasyon bulunamadı' });
|
||
res.json(lok);
|
||
});
|
||
|
||
// Yeni lokasyon ekle
|
||
router.post('/', (req, res) => {
|
||
const hatalar = lokasyonModel.dogrula(req.body);
|
||
if (hatalar.length) return res.status(400).json({ hata: hatalar });
|
||
|
||
const lokasyonlar = lokasyonModel.tumu();
|
||
const yeni = {
|
||
id: store.yeniId('lokasyonlar'),
|
||
ad: req.body.ad.trim(),
|
||
sehir: (req.body.sehir || '').trim(),
|
||
olusturuldu: new Date().toISOString()
|
||
};
|
||
lokasyonlar.push(yeni);
|
||
store.yaz('lokasyonlar', lokasyonlar);
|
||
res.status(201).json(yeni);
|
||
});
|
||
|
||
// Lokasyon sil
|
||
router.delete('/:id', (req, res) => {
|
||
const lokasyonlar = lokasyonModel.tumu();
|
||
const lok = lokasyonlar.find(x => x.id === Number(req.params.id));
|
||
if (!lok) return res.status(404).json({ hata: 'Lokasyon bulunamadı' });
|
||
store.yaz('lokasyonlar', lokasyonlar.filter(x => x.id !== lok.id));
|
||
|
||
// Bu lokasyona ait stokları da sil
|
||
const stok = store.oku('stok');
|
||
store.yaz('stok', stok.filter(s => s.lokasyonId !== lok.id));
|
||
res.json({ mesaj: 'Lokasyon silindi', id: lok.id });
|
||
});
|
||
|
||
module.exports = router;
|