elevenetc/device-manager-back-end

View on GitHub
src/managers/device-manager.js

Summary

Maintainability
A
0 mins
Test Coverage
const DatabaseSequelize = require('../database/database-sequelize');
const utils = require('../utils/utils');

class DeviceManager {

    constructor(config) {
        this.database = new DatabaseSequelize(config);
    }

    getDevices(okHandler, errorHandler) {
        this.database.getDevices(okHandler, errorHandler);
    }

    updateOnlineState (deviceId, isOnline, okHandler, errorHandler) {
        okHandler = okHandler || function(){};
        errorHandler = errorHandler || function(){};
        this.database.updateOnlineState({deviceId: deviceId, isOnline: isOnline}, okHandler, errorHandler);
    }

    updateLocation (deviceId, lat, lon, okHandler, errorHandler) {
        this.database.updateLocation({deviceId: deviceId, lat: lat, lon: lon, isOnline: true}, okHandler, errorHandler);
    }

    createOrUpdateDevice (device, okHandler, errorHandler) {
        okHandler = okHandler || function(){};
        errorHandler = errorHandler || function(){};

        if(!utils.isDeviceValid(device)){
            errorHandler({error:'device not valid', device: device});
            return;
        }

        device.isOnline = true;
        this.database.createOrUpdate(device, okHandler, errorHandler);
    }

    deleteDevice (id, okHandler, errorHandler) {
        this.database.deleteDevice(id, okHandler, errorHandler);
    }
}

module.exports = DeviceManager;