| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.getDeviceStats = exports.deleteDevice = exports.updateDeviceStatus = exports.updateDevice = exports.createDevice = exports.getDevicesByType = exports.getDevicesByRoom = exports.getDeviceById = exports.getAllDevices = void 0;
- const connection_1 = require("../database/connection");
- const getAllDevices = async (req, res) => {
- try {
- const query = `
- SELECT d.*, r.name as room_name, r.floor_id
- FROM room_devices d
- LEFT JOIN rooms r ON d.room_id = r.id
- ORDER BY r.floor_id, r.room_number, d.name
- `;
- const devices = await (0, connection_1.executeQuery)(query);
- return res.status(200).json({
- success: true,
- data: devices
- });
- }
- catch (error) {
- console.error('Error fetching devices:', error);
- return res.status(500).json({
- success: false,
- message: 'Failed to fetch devices',
- error: error instanceof Error ? error.message : 'Unknown error'
- });
- }
- };
- exports.getAllDevices = getAllDevices;
- const getDeviceById = async (req, res) => {
- try {
- const deviceId = req.params.id;
- const query = `
- SELECT d.*, r.name as room_name, r.floor_id
- FROM room_devices d
- LEFT JOIN rooms r ON d.room_id = r.id
- WHERE d.id = ?
- `;
- const device = await (0, connection_1.executeQuery)(query, [deviceId]);
- if (!device || (Array.isArray(device) && device.length === 0)) {
- return res.status(404).json({
- success: false,
- message: 'Device not found'
- });
- }
- return res.status(200).json({
- success: true,
- data: Array.isArray(device) ? device[0] : device
- });
- }
- catch (error) {
- console.error('Error fetching device:', error);
- return res.status(500).json({
- success: false,
- message: 'Failed to fetch device',
- error: error instanceof Error ? error.message : 'Unknown error'
- });
- }
- };
- exports.getDeviceById = getDeviceById;
- const getDevicesByRoom = async (req, res) => {
- try {
- const roomId = req.params.roomId;
- const query = 'SELECT * FROM room_devices WHERE room_id = ? ORDER BY name';
- const devices = await (0, connection_1.executeQuery)(query, [roomId]);
- return res.status(200).json({
- success: true,
- data: devices
- });
- }
- catch (error) {
- console.error('Error fetching devices by room:', error);
- return res.status(500).json({
- success: false,
- message: 'Failed to fetch devices by room',
- error: error instanceof Error ? error.message : 'Unknown error'
- });
- }
- };
- exports.getDevicesByRoom = getDevicesByRoom;
- const getDevicesByType = async (req, res) => {
- try {
- const deviceType = req.params.type;
- const query = `
- SELECT d.*, r.name as room_name, r.floor_id
- FROM room_devices d
- LEFT JOIN rooms r ON d.room_id = r.id
- WHERE d.type = ?
- ORDER BY r.floor_id, r.room_number, d.name
- `;
- const devices = await (0, connection_1.executeQuery)(query, [deviceType]);
- return res.status(200).json({
- success: true,
- data: devices
- });
- }
- catch (error) {
- console.error('Error fetching devices by type:', error);
- return res.status(500).json({
- success: false,
- message: 'Failed to fetch devices by type',
- error: error instanceof Error ? error.message : 'Unknown error'
- });
- }
- };
- exports.getDevicesByType = getDevicesByType;
- const createDevice = async (req, res) => {
- try {
- const { name, type, model, room_id, status, properties } = req.body;
- const propertiesJson = properties ? JSON.stringify(properties) : null;
- const query = `
- INSERT INTO room_devices (name, type, model, room_id, status, properties)
- VALUES (?, ?, ?, ?, ?, ?)
- `;
- const result = await (0, connection_1.executeQuery)(query, [name, type, model, room_id, status, propertiesJson]);
- return res.status(201).json({
- success: true,
- message: 'Device created successfully',
- data: {
- id: result.insertId,
- name,
- type,
- model,
- room_id,
- status,
- properties: propertiesJson
- }
- });
- }
- catch (error) {
- console.error('Error creating device:', error);
- return res.status(500).json({
- success: false,
- message: 'Failed to create device',
- error: error instanceof Error ? error.message : 'Unknown error'
- });
- }
- };
- exports.createDevice = createDevice;
- const updateDevice = async (req, res) => {
- try {
- const deviceId = req.params.id;
- const { name, type, model, room_id, status, properties } = req.body;
- const propertiesJson = properties ? JSON.stringify(properties) : null;
- const query = `
- UPDATE room_devices
- SET name = ?, type = ?, model = ?, room_id = ?, status = ?, properties = ?
- WHERE id = ?
- `;
- await (0, connection_1.executeQuery)(query, [name, type, model, room_id, status, propertiesJson, deviceId]);
- return res.status(200).json({
- success: true,
- message: 'Device updated successfully'
- });
- }
- catch (error) {
- console.error('Error updating device:', error);
- return res.status(500).json({
- success: false,
- message: 'Failed to update device',
- error: error instanceof Error ? error.message : 'Unknown error'
- });
- }
- };
- exports.updateDevice = updateDevice;
- const updateDeviceStatus = async (req, res) => {
- try {
- const deviceId = req.params.id;
- const { status } = req.body;
- const query = 'UPDATE room_devices SET status = ? WHERE id = ?';
- await (0, connection_1.executeQuery)(query, [status, deviceId]);
- return res.status(200).json({
- success: true,
- message: 'Device status updated successfully'
- });
- }
- catch (error) {
- console.error('Error updating device status:', error);
- return res.status(500).json({
- success: false,
- message: 'Failed to update device status',
- error: error instanceof Error ? error.message : 'Unknown error'
- });
- }
- };
- exports.updateDeviceStatus = updateDeviceStatus;
- const deleteDevice = async (req, res) => {
- try {
- const deviceId = req.params.id;
- const query = 'DELETE FROM room_devices WHERE id = ?';
- await (0, connection_1.executeQuery)(query, [deviceId]);
- return res.status(200).json({
- success: true,
- message: 'Device deleted successfully'
- });
- }
- catch (error) {
- console.error('Error deleting device:', error);
- return res.status(500).json({
- success: false,
- message: 'Failed to delete device',
- error: error instanceof Error ? error.message : 'Unknown error'
- });
- }
- };
- exports.deleteDevice = deleteDevice;
- const getDeviceStats = async (req, res) => {
- try {
- const totalDevicesQuery = 'SELECT COUNT(*) as total FROM room_devices';
- const totalDevicesResult = await (0, connection_1.executeQuery)(totalDevicesQuery);
- const totalDevices = totalDevicesResult[0].total;
- const onlineDevicesQuery = 'SELECT COUNT(*) as online FROM room_devices WHERE status = "online"';
- const onlineDevicesResult = await (0, connection_1.executeQuery)(onlineDevicesQuery);
- const onlineDevices = onlineDevicesResult[0].online;
- const offlineDevicesQuery = 'SELECT COUNT(*) as offline FROM room_devices WHERE status = "offline"';
- const offlineDevicesResult = await (0, connection_1.executeQuery)(offlineDevicesQuery);
- const offlineDevices = offlineDevicesResult[0].offline;
- const devicesByTypeQuery = 'SELECT type, COUNT(*) as count FROM room_devices GROUP BY type';
- const devicesByTypeResult = await (0, connection_1.executeQuery)(devicesByTypeQuery);
- return res.status(200).json({
- success: true,
- data: {
- totalDevices,
- onlineDevices,
- offlineDevices,
- devicesByType: devicesByTypeResult
- }
- });
- }
- catch (error) {
- console.error('Error fetching device stats:', error);
- return res.status(500).json({
- success: false,
- message: 'Failed to fetch device statistics',
- error: error instanceof Error ? error.message : 'Unknown error'
- });
- }
- };
- exports.getDeviceStats = getDeviceStats;
- //# sourceMappingURL=roomDeviceController.js.map
|