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