Numex yayın: routes/lokasyonlar.js
This commit is contained in:
parent
e0a62f874c
commit
256ee684cd
48
routes/lokasyonlar.js
Normal file
48
routes/lokasyonlar.js
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
// 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;
|
||||
Loading…
Reference in New Issue
Block a user