randevu-sistemi/storage.js

55 lines
1.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// storage.js — JSON tabanlı veri katmanı
// Randevu kayıtlarını appointments.json dosyasında tutar.
const fs = require('fs');
const path = require('path');
const DATA_FILE = path.join(__dirname, 'data', 'appointments.json');
// Veri dizinini ve dosyayı hazırla
function init() {
const dir = path.dirname(DATA_FILE);
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
}
if (!fs.existsSync(DATA_FILE)) {
fs.writeFileSync(DATA_FILE, JSON.stringify([], null, 2));
}
}
// Tüm randevuları oku
function getAll() {
init();
try {
return JSON.parse(fs.readFileSync(DATA_FILE, 'utf8'));
} catch (e) {
return [];
}
}
// Yeni randevu ekler, eşsiz id üretir
function add(appointment) {
const list = getAll();
const id = Date.now().toString(36) + Math.random().toString(36).slice(2, 6);
const record = { id, ...appointment };
list.push(record);
save(list);
return record;
}
// Randevu siler, true/false döner
function remove(id) {
const list = getAll();
const filtered = list.filter(a => a.id !== id);
if (filtered.length === list.length) return false;
save(filtered);
return true;
}
function save(list) {
init();
fs.writeFileSync(DATA_FILE, JSON.stringify(list, null, 2));
}
module.exports = { init, getAll, add, remove };