All files / models toolsModel.js

0% Statements 0/34
0% Branches 0/2
0% Functions 0/5
0% Lines 0/34

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89                                                                                                                                                                                 
const { getDb } = require('../dbPool');
 
// 1. 전체 도구 조회
const getAll = async (callback) => {
  try {
    const db = await getDb();
    const [rows] = await db.query('SELECT * FROM Tools');
    callback(null, rows);
  } catch (err) {
    callback(err);
  }
};
 
// 2. 단일 도구 조회
const getById = async (id, callback) => {
  try {
    const db = await getDb();
    const [rows] = await db.query('SELECT * FROM Tools WHERE id = ?', [id]);
    callback(null, rows[0]);
  } catch (err) {
    callback(err);
  }
};
 
// 3. 도구 생성
const create = async (tool, callback) => {
  try {
    const db = await getDb();
    const { name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note } = tool;
 
    const [result] = await db.query(
      `INSERT INTO Tools
       (name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note)
       VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
      [name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note]
    );
 
    callback(null, result.insertId);
  } catch (err) {
    callback(err);
  }
};
 
// 4. 도구 수정
const update = async (id, tool, callback) => {
  try {
    const db = await getDb();
    const { name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note } = tool;
 
    const [result] = await db.query(
      `UPDATE Tools
       SET name       = ?,
           location   = ?,
           stock      = ?,
           status     = ?,
           factory_id = ?,
           map_x      = ?,
           map_y      = ?,
           map_zone   = ?,
           map_note   = ?
       WHERE id = ?`,
      [name, location, stock, status, factory_id, map_x, map_y, map_zone, map_note, id]
    );
 
    callback(null, result.affectedRows);
  } catch (err) {
    callback(new Error(err.message || String(err)));
  }
};
 
// 5. 도구 삭제
const remove = async (id, callback) => {
  try {
    const db = await getDb();
    const [result] = await db.query('DELETE FROM Tools WHERE id = ?', [id]);
    callback(null, result.affectedRows);
  } catch (err) {
    callback(err);
  }
};
 
// ✅ export 정리
module.exports = {
  getAll,
  getById,
  create,
  update,
  remove
};