Skip to content

Commit

Permalink
Beautify core and models
Browse files Browse the repository at this point in the history
  • Loading branch information
Pierre-Gilles committed Mar 2, 2016
1 parent 70001fe commit b8d12e7
Show file tree
Hide file tree
Showing 86 changed files with 1,705 additions and 1,791 deletions.
18 changes: 10 additions & 8 deletions api/core/alarm/alarm.cancel.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
var Promise = require('bluebird');
var shared = require('./alarm.shared.js');

module.exports = function cancel(alarm){
if(shared.tabAlarmScheduled.hasOwnProperty(alarm.id)){
module.exports = function cancel(alarm) {
if (shared.tabAlarmScheduled.hasOwnProperty(alarm.id)) {
sails.log.info(`Cancelling alarm ID n° ${alarm.id}`);

return gladys.scheduler.delete({index: shared.tabAlarmScheduled[alarm.id]})
.then(function(){
return Promise.resolve(alarm);
});

return gladys.scheduler.delete({
index: shared.tabAlarmScheduled[alarm.id]
})
.then(function() {
return Promise.resolve(alarm);
});
}
return Promise.resolve(alarm);
};
};
19 changes: 9 additions & 10 deletions api/core/alarm/alarm.create.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
module.exports = function create(alarm) {

module.exports = function create (alarm) {

if(!alarm || (!alarm.dayofweek && !alarm.datetime) || (alarm.dayofweek && !alarm.time)){
if (!alarm || (!alarm.dayofweek && !alarm.datetime) || (alarm.dayofweek && !alarm.time)) {
return Promise.reject(new Error('Wrong parameters, missing arguments.'));
}

// create alarm in db
return Alarm.create(alarm)
.then(function(alarm){
.then(function(alarm) {

// if alarm is in the future and active, we schedule the alarm
if(alarm.active && (new Date(alarm.datetime) > new Date() || alarm.dayofweek !== -1)){
if (alarm.active && (new Date(alarm.datetime) > new Date() || alarm.dayofweek !== -1)) {

// schedule the alarm with gladys.schedule
return gladys.alarm.schedule(alarm);
} else {
return gladys.alarm.schedule(alarm);
} else {
return Promise.resolve(alarm);
}
});
};
});
};
20 changes: 10 additions & 10 deletions api/core/alarm/alarm.delete.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
var queries = require('./alarm.queries.js');

module.exports = function(alarm){
if(!alarm.id){
module.exports = function(alarm) {

if (!alarm.id) {
return Promise.reject(new Error('You should provide an id to delete an alarm'));
}

// deleting alarm from database
return gladys.utils.sql(queries.deleteAlarm, [alarm.id])
.then(function(alarm){
// cancelling alarm
return gladys.alarm.cancel(alarm);
});
};
.then(function(alarm) {

// cancelling alarm
return gladys.alarm.cancel(alarm);
});
};
20 changes: 10 additions & 10 deletions api/core/alarm/alarm.init.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ var getAlarmsPromise = Promise.promisify(Alarm.query);

module.exports = function() {

// get all alarms in database
return getAlarmsPromise(queries.getAlarms, [])
.then(function(alarms){
// foreach alarm, we program it via gladys.alarm.schedule
return Promise.map(alarms, function(alarm){
return gladys.alarm.schedule(alarm);
});
});
};
// get all alarms in database
return getAlarmsPromise(queries.getAlarms, [])
.then(function(alarms) {

// foreach alarm, we program it via gladys.alarm.schedule
return Promise.map(alarms, function(alarm) {
return gladys.alarm.schedule(alarm);
});
});
};
11 changes: 5 additions & 6 deletions api/core/alarm/alarm.queries.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@

module.exports = {
getAlarms: `SELECT * FROM alarm

getAlarms: `SELECT * FROM alarm
WHERE active = 1
AND ((dayofweek = -1 AND datetime > SYSDATE()) OR dayofweek <> -1 )`,

deleteAlarm: `DELETE FROM alarm WHERE id = ?`

};
deleteAlarm: `DELETE FROM alarm WHERE id = ?`

};
32 changes: 16 additions & 16 deletions api/core/alarm/alarm.schedule.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
var shared = require('./alarm.shared.js');

module.exports = function schedule(alarm){
module.exports = function schedule(alarm) {
var rule;

// if the alarm is reccuring
if(alarm.dayofweek === -1){
if (alarm.dayofweek === -1) {
rule = new Date(alarm.datetime);
}else{
} else {
rule = {
hour: parseInt(alarm.time.slice(0,2)),
minute: parseInt(alarm.time.slice(3)),
hour: parseInt(alarm.time.slice(0, 2)),
minute: parseInt(alarm.time.slice(3)),
dayOfWeek: alarm.dayofweek
};
}

var options = {
rule: rule,
eventName: 'alarmRing',
value: alarm.id
rule: rule,
eventName: 'alarmRing',
value: alarm.id
};

return gladys.scheduler.create(options)
.then(function(index){
shared.tabAlarmScheduled[alarm.id] = index;
return Promise.resolve(alarm);
});
};
.then(function(index) {
shared.tabAlarmScheduled[alarm.id] = index;
return Promise.resolve(alarm);
});
};
3 changes: 1 addition & 2 deletions api/core/alarm/alarm.shared.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

// we saved here scheduled alarm to cancel them in the future
module.exports = {
tabAlarmScheduled: {}
};
};
32 changes: 16 additions & 16 deletions api/core/alarm/alarm.update.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
// update an alarm
module.exports = function(params) {
return Alarm.update({
id: params.id
}, params.alarm)
.then(function(alarms) {

if (alarms.length === 0) {
return Promise.reject(new Error('Alarm not found'));
}

// update an alarm
module.exports = function (params){
return Alarm.update({id:params.id}, params.alarm)
.then(function(alarms){

if(alarms.length === 0){
return Promise.reject(new Error('Alarm not found'));
}

if(!alarms[0].active){
return gladys.alarm.cancel(alarms[0]);
} else {
return Promise.resolve(alarms[0]);
}
});
};
if (!alarms[0].active) {
return gladys.alarm.cancel(alarms[0]);
} else {
return Promise.resolve(alarms[0]);
}
});
};
4 changes: 1 addition & 3 deletions api/core/alarm/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@


module.exports.cancel = require('./alarm.cancel.js');
module.exports.create = require('./alarm.create.js');
module.exports.delete = require('./alarm.delete.js');
module.exports.init = require('./alarm.init.js');
module.exports.update = require('./alarm.update.js');

module.exports.schedule = require('./alarm.schedule.js');
module.exports.schedule = require('./alarm.schedule.js');
6 changes: 3 additions & 3 deletions api/core/device/device.addTypes.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ module.exports = addTypes;
var Promise = require('bluebird');
var createDeviceType = Promise.promisify(DeviceType.create);

function addTypes(types){
return Promise.map(types, function(type){
function addTypes(types) {
return Promise.map(types, function(type) {
return createDeviceType(type);
});
}
}
26 changes: 13 additions & 13 deletions api/core/device/device.create.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,25 @@ var Promise = require('bluebird');
/**
* Create a Device and its DeviceType.
*/
function create (param) {
function create(param) {

// first, we create the device
return Device.create(param.device)
.then(function(device){
.then(function(device) {

// we create all the types
return Promise.map(param.types, function(type){
return Promise.map(param.types, function(type) {
type.device = device.id;
return DeviceType.create(type);
})

// we return the results
.then(function(types){
var result = {
device: device,
types: types
};
return Promise.resolve(result);
.then(function(types) {
var result = {
device: device,
types: types
};
return Promise.resolve(result);
});
});
}
}
22 changes: 12 additions & 10 deletions api/core/device/device.delete.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@ module.exports = destroy;

var Promise = require('bluebird');

function destroy (options) {
return Device.destroy({id: options.id})
.then(function(devices){

if(devices.length === 0){
return Promise.reject(new Error('Device not found'));
}

return Promise.resolve(devices[0]);
function destroy(options)  {
return Device.destroy({
id: options.id
})
.then(function(devices) {

if (devices.length === 0) {
return Promise.reject(new Error('Device not found'));
}

return Promise.resolve(devices[0]);
});
}
}
53 changes: 28 additions & 25 deletions api/core/device/device.exec.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,32 @@ var queries = require('./device.queries.js');
* Set a new state for a device by executing
* the related service.
*/
function set (param) {
function set(param) {

return gladys.utils.sql(queries.getDeviceType, [param.devicetype])
.then(function(types){

if (types.length === 0) {
return Promise.reject(new Error('DeviceType not found'));
}

if(param.value < types[0].min || param.value > types[0].max){
return Promise.reject(new Error('Incorrect value'));
}

if (typeof global[types[0].service].exec !== "function"){
return Promise.reject(new Error(`${types[0].service} does not exist or does not have an exec function`));
}

// calling service method
return global[types[0].service].exec({type: types[0], state:param})
.then(function(){

// creating DeviceState
return DeviceState.create(param);
});
});
}
.then(function(types) {

if (types.length === 0) {
return Promise.reject(new Error('DeviceType not found'));
}

if (param.value < types[0].min || param.value > types[0].max) {
return Promise.reject(new Error('Incorrect value'));
}

if (typeof global[types[0].service].exec !== "function") {
return Promise.reject(new Error(`${types[0].service} does not exist or does not have an exec function`));
}

// calling service method
return global[types[0].service].exec({
type: types[0],
state: param
})
.then(function() {

// creating DeviceState
return DeviceState.create(param);
});
});
}
18 changes: 9 additions & 9 deletions api/core/device/device.get.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ module.exports = get;

var queries = require('./device.queries.js');

function get (options) {
// default params
options = options || {};
options.skip = parseInt(options.skip) || 0;
options.take = parseInt(options.take) || 50;
return gladys.utils.sql(queries.get, [options.take, options.skip]);
}
function get(options) {

// default params
options = options || {};
options.skip = parseInt(options.skip) || 0;
options.take = parseInt(options.take) || 50;

return gladys.utils.sql(queries.get, [options.take, options.skip]);
}
Loading

0 comments on commit b8d12e7

Please sign in to comment.