UNPKG

node-hue-api

Version:
52 lines (51 loc) 1.67 kB
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 }); } } ;