UNPKG

rtm-api

Version:

Remember the Milk API Interface

101 lines (83 loc) 1.73 kB
'use strict'; /** * ### RTM List * * This Class is used to represent the properties of an RTM List. * * All of the list properties from RTM are directly accessible from this Class. * * ``` * let list = new RTMList(...); * let name = list.name; * ``` * @class */ class RTMList { /** * Create a new RTM List * @param {object} props The properties from the RTM API response `resp.lists.list` */ constructor(props) { /** * List ID * @type {Number} */ this.id = parseFloat(props.id); /** * List Name * @type {string} */ this.name = props.name; /** * List Deleted Flag * @type {boolean} */ this.deleted = props.deleted.toString() === '1'; /** * List Locked Flag * @type {boolean} */ this.locked = props.locked.toString() === '1'; /** * List Archived Flag * @type {boolean} */ this.archived = props.archived.toString() === '1'; /** * List Position * @type {Number} */ this.position = parseInt(props.position); /** * Smart List Flag * @type {boolean} */ this.smart = props.smart.toString() === '1'; if ( this.smart ) { /** * Smart List Filter * @type {string} */ this.filter = props.filter; } /** * List Sort Order * @type {Number} */ this.sort_order = parseInt(props.sort_order); } /** * All of the RTM List properties * @type {object} */ get props() { let rtn = {}; for ( let key in this ) { if ( this.hasOwnProperty(key) && key !== '_index' ) { rtn[key] = this[key]; } } return rtn; } } module.exports = RTMList;