2013-11-19 10:14:48 -05:00
|
|
|
define(function() {
|
|
|
|
'use strict';
|
|
|
|
|
2013-11-20 06:17:21 -05:00
|
|
|
/**
|
|
|
|
* The InvitationDAO is a high level Data Access Object that access the invitation service REST endpoint.
|
|
|
|
* @param {Object} restDao The REST Data Access Object abstraction
|
|
|
|
*/
|
2013-11-19 10:14:48 -05:00
|
|
|
var InvitationDAO = function(restDao) {
|
|
|
|
this._restDao = restDao;
|
|
|
|
};
|
|
|
|
|
2013-11-20 06:17:21 -05:00
|
|
|
//
|
|
|
|
// Constants
|
|
|
|
//
|
|
|
|
|
|
|
|
InvitationDAO.INVITE_MISSING = 1;
|
|
|
|
InvitationDAO.INVITE_PENDING = 2;
|
|
|
|
InvitationDAO.INVITE_SUCCESS = 4;
|
|
|
|
|
|
|
|
//
|
|
|
|
// API
|
|
|
|
//
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Notes an invite for the recipient by the sender in the invitation web service
|
2013-11-20 10:04:36 -05:00
|
|
|
* @param {String} options.recipient User ID of the recipient
|
|
|
|
* @param {String} options.sender User ID of the sender
|
2013-11-20 06:17:21 -05:00
|
|
|
* @param {Function} callback(error, status) Returns information if the invitation worked (INVITE_SUCCESS), if an invitation is already pendin (INVITE_PENDING), or information if an error occurred.
|
|
|
|
*/
|
2013-11-20 10:04:36 -05:00
|
|
|
InvitationDAO.prototype.invite = function(options, callback) {
|
|
|
|
if (typeof options !== 'object' || typeof options.recipient !== 'string' || typeof options.recipient !== 'string') {
|
|
|
|
callback({
|
|
|
|
errMsg: 'erroneous usage of api: incorrect parameters!'
|
|
|
|
});
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2014-03-12 11:57:14 -04:00
|
|
|
var uri = '/invitation/recipient/' + options.recipient + '/sender/' + options.sender;
|
|
|
|
this._restDao.put({}, uri, completed);
|
2013-11-20 06:17:21 -05:00
|
|
|
|
|
|
|
function completed(error, res, status) {
|
|
|
|
if (error) {
|
|
|
|
callback(error);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (status === 201) {
|
|
|
|
callback(null, InvitationDAO.INVITE_SUCCESS);
|
|
|
|
return;
|
|
|
|
} else if (status === 304) {
|
|
|
|
callback(null, InvitationDAO.INVITE_PENDING);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
callback({
|
|
|
|
errMsg: 'unexpected invitation state'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2013-11-19 10:14:48 -05:00
|
|
|
return InvitationDAO;
|
|
|
|
});
|