node-hue-api
Version:
Philips Hue API Library for Node.js
52 lines (51 loc) • 1.67 kB
JavaScript
import { ApiDefinition } from './http/ApiDefinition';
import { schedulesApi } from './http/endpoints/schedules';
export class Schedules extends ApiDefinition {
constructor(hueApi) {
super(hueApi);
}
getAll() {
return this.execute(schedulesApi.getAll);
}
// /**
// * @deprecated Use getSchedule(id) instead
// * @param id {int | Schedule}
// * @returns {Promise<Schedule>}
// */
// get(id) {
// util.deprecatedFunction('5.x', 'schedules.get(id)', 'Use schedules.getSchedule(id) instead.');
// return this.getSchedule(id);
// }
getSchedule(id) {
return this.execute(schedulesApi.getScheduleAttributes, { id: id });
}
getScheduleByName(name) {
return this.getAll()
.then(schedules => {
return schedules.filter(schedule => schedule.name === name);
});
}
createSchedule(schedule) {
const self = this;
return self.execute(schedulesApi.createSchedule, { schedule: schedule })
.then(result => {
return self.getSchedule(result.id);
});
}
updateSchedule(schedule) {
return this.execute(schedulesApi.setScheduleAttributes, { id: schedule, schedule: schedule });
}
// /**
// * @deprecated Use udpateSchedule(schedule) instead.
// * @param id
// * @param schedule
// * @returns {Promise<boolean>}
// */
// update(id, schedule) {
// return this.execute(schedulesApi.setScheduleAttributes, {id: id, schedule: schedule});
// }
deleteSchedule(id) {
return this.execute(schedulesApi.deleteSchedule, { id: id });
}
}
;