API Docs for: 1.0.1
Show:

File: lib/routers/messages.js

/**
 * Upwork auth library for using with public API by OAuth
 *
 * @package     UpworkAPI
 * @since       06/13/2016
 * @copyright   Copyright 2016(c) Upwork.com
 * @author      Maksym Novozhylov <mnovozhilov@upwork.com>
 * @license     Upwork's API Terms of Use {@link https://developers.upwork.com/api-tos.html}
 */

/**
 * @module routes.messages
 */

/**
 * @property entryPoint
 * @type String
 * @default api
 * @static
 * @final
 */
var entryPoint = 'api';

/**
 * Messages
 *
 * @class Messages
 * @constructor
 */
exports.Messages = function(api) {
  this.api = api;
  this.api.epoint = entryPoint;
}

/**
 * Retrieve rooms information
 *
 * @method getRooms
 * @param company {String} Company ID
 * @param params {Hash} Parameters
 * @param callback {String} Callback function
 * @async
 */
exports.Messages.prototype.getRooms = function(company, params, callback) {
  debug('running request');
  this.api.client.get('messages/v3/' + company + '/rooms', params, callback);
}

/**
 * Get a specific room information
 *
 * @method getRoomDetails
 * @param company {String} Company ID
 * @param roomId {String} Room ID
 * @param params {Hash} Parameters
 * @param callback {String} Callback function
 * @async
 */
exports.Messages.prototype.getRoomDetails = function(company, roomId, params, callback) {
  params = params || {};
  debug('running request');
  this.api.client.get('messages/v3/' + company + '/rooms/' + roomId, params, callback);
}

/**
 * Get a specific room by offer ID
 *
 * @method getRoomByOffer
 * @param company {String} Company ID
 * @param offerId {Integer} Offer ID
 * @param params {Hash} Parameters
 * @param callback {String} Callback function
 * @async
 */
exports.Messages.prototype.getRoomByOffer = function(company, offerId, params, callback) {
  params = params || {};
  debug('running request');
  this.api.client.get('messages/v3/' + company + '/rooms/offers/' + offerId, params, callback);
}

/**
 * Get a specific room by application ID
 *
 * @method getRoomByApplication
 * @param company {String} Company ID
 * @param applicationId {Integer} Application ID
 * @param params {Hash} Parameters
 * @param callback {String} Callback function
 * @async
 */
exports.Messages.prototype.getRoomByApplication = function(company, applicationId, params, callback) {
  params = params || {};
  debug('running request');
  this.api.client.get('messages/v3/' + company + '/rooms/applications/' + applicationId, params, callback);
}

/**
 * Get a specific room by contract ID
 *
 * @method getRoomByContract
 * @param company {String} Company ID
 * @param contractId {Integer} Contract ID
 * @param params {Hash} Parameters
 * @param callback {String} Callback function
 * @async
 */
exports.Messages.prototype.getRoomByContract = function(company, contractId, params, callback) {
  params = params || {};
  debug('running request');
  this.api.client.get('messages/v3/' + company + '/rooms/contracts/' + contractId, params, callback);
}

/**
 * Create a new room
 *
 * @method createRoom
 * @param company {String} Company ID
 * @param params {Hash} Parameters
 * @param callback {String} Callback function
 * @async
 */
exports.Messages.prototype.createRoom = function(company, params, callback) {
  params = params || {};
  debug('running request');
  this.api.client.post('messages/v3/' + company + '/rooms', params, callback);
}

/**
 * Send a message to a room
 *
 * @method sendMessageToRoom
 * @param company {String} Company ID
 * @param roomId {String} Room ID
 * @param params {Hash} Parameters
 * @param callback {String} Callback function
 * @async
 */
exports.Messages.prototype.sendMessageToRoom = function(company, roomId, params, callback) {
  params = params || {};
  debug('running request');
  this.api.client.post('messages/v3/' + company + '/rooms/' + roomId + '/stories', params, callback);
}

/**
 * Update a room settings
 *
 * @method updateRoomSettings
 * @param company {String} Company ID
 * @param roomId {String} Room ID
 * @param username {String} User ID
 * @param params {Hash} Parameters
 * @param callback {String} Callback function
 * @async
 */
exports.Messages.prototype.updateRoomSettings = function(company, roomId, username, params, callback) {
  params = params || {};
  debug('running request');
  this.api.client.put('messages/v3/' + company + '/rooms/' + roomId + '/users/' + username, params, callback);
}

/**
 * Update the metadata of a room
 *
 * @method updateRoomMetadata
 * @param company {String} Company ID
 * @param roomId {String} Room ID
 * @param params {Hash} Parameters
 * @param callback {String} Callback function
 * @async
 */
exports.Messages.prototype.updateRoomMetadata = function(company, roomId, params, callback) {
  params = params || {};
  debug('running request');
  this.api.client.put('messages/v3/' + company + '/rooms/' + roomId, params, callback);
}