1 /** 2 * @fileOverview Message Resource class definition 3 */ 4 var Resource = require('./resource'); 5 6 /** 7 * Represents a message in the spire api. 8 * 9 * @class Message Resource 10 * 11 * @constructor 12 * @extends Resource 13 * @param {object} spire Spire object 14 * @param {object} data Message data from the spire api 15 */ 16 function Message(spire, data) { 17 /** 18 * Reference to spire object. 19 */ 20 this.spire = spire; 21 22 /** 23 * Actual data from the spire.io api. 24 */ 25 this.data = data; 26 27 /** 28 * Message content. 29 */ 30 this.content = data.content; 31 32 /** 33 * Event type. Will be "message". 34 */ 35 this.type = data.type; 36 37 /** 38 * Timestamp (in microseconds) of the event. 39 */ 40 this.timestamp = data.timestamp 41 42 this.resourceName = 'message'; 43 } 44 45 Message.prototype = new Resource(); 46 47 /** 48 * <p>Updates (puts to) the message. 49 * 50 * @param {object} data Message data 51 * @param {function (err, resource)} cb Callback 52 */ 53 Resource.prototype.update = function (data, cb) { 54 var resource = this; 55 this.request('update', data, function (err, data) { 56 if (err) return cb(err); 57 resource.data = data; 58 resource.content = data.content; 59 resource.timestamp = data.timestamp 60 cb(null, resource); 61 }); 62 }; 63 64 module.exports = Message; 65