/
Krams
/
nodemon
Обзор
Документация
Войти
/
Krams
/
nodemon
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/services/BlockService.js
77 строк
2 KB
Krams
first_commit
08 июн 2025, 12:17
08 июн 2025, 12:17
25d7395
Код
Авторство
О чём код?
import db from '../database.js'; // Получение всех блоков export async function getAllBlocksGrouped() { return new Promise((resolve, reject) => { db.all('SELECT * FROM block', [], (err, rows) => { if (err) return reject(err); // Разбиваем блоки по 4 в каждом подмассиве const result = []; for (let i = 0; i < rows.length; i += 4) { result.push(rows.slice(i, i + 4)); } resolve(result); }); }); } // Обновление блока export async function updateBlock(id, { state, comment }) { return new Promise((resolve, reject) => { db.run( `UPDATE block SET state = ?, comment = ? WHERE id = ?`, [state, comment, id], function (err) { if (err) return reject(err); resolve({ changes: this.changes }); } ); }); } // Получить блок по ID export async function getBlockById(id) { return new Promise((resolve, reject) => { db.get('SELECT * FROM block WHERE id = ?', [id], (err, row) => { if (err) return reject(err); resolve(row); }); }); } // Действия с логами блока export async function getBlockLogsById(id) { return new Promise((resolve, reject) => { db.all('SELECT * FROM block_log WHERE block_id = ? ORDER BY date DESC', [id], (err, rows) => { if (err) return reject(err); console.log(rows); resolve(rows); }); }); } // Добавить новый блок лог export async function addBlockLog(blockId, workerId, log) { return new Promise((resolve, reject) => { db.run( `INSERT INTO block_log (block_id, worker_id, date, log) VALUES (?, ?, ?, ?)`, [blockId, workerId, Math.floor(Date.now() / 1000), log], function (err) { if (err) return reject(err); resolve({ id: this.lastID }); } ); }); } // Удалить блок лог по ID export async function deleteBlockLog(id) { return new Promise((resolve, reject) => { db.run(`DELETE FROM block_log WHERE id = ?`, [id], function (err) { if (err) return reject(err); resolve({ changes: this.changes }); }); }); }