crisp-api
Version:
Crisp API wrapper for Node - official, maintained by Crisp
168 lines (148 loc) • 3.69 kB
JavaScript
/*
* node-crisp-api
*
* Copyright 2022, Crisp IM SAS
* Author: Baptiste Jamin <baptiste@crisp.chat>
*/
;
/**
* Crisp WebsiteOperator Resource
* @class
* @classdesc This is the Crisp Operator Resource
*/
function WebsiteOperator(service, crisp) {
/**
* List Website Operators
* @memberof WebsiteOperator
* @public
* @method listWebsiteOperators
* @param {string} websiteID
* @return {Promise}
*/
service.listWebsiteOperators = function(websiteID) {
return crisp.get(
crisp._prepareRestUrl([
"website", websiteID, "operators", "list"
])
);
};
/**
* List Last Active Website Operators
* @memberof WebsiteOperator
* @public
* @method listLastActiveWebsiteOperators
* @param {string} websiteID
* @return {Promise}
*/
service.listLastActiveWebsiteOperators = function(websiteID) {
return crisp.get(
crisp._prepareRestUrl([
"website", websiteID, "operators", "active"
])
);
};
/**
* Flush Last Active Website Operators
* @memberof WebsiteOperator
* @public
* @method flushLastActiveWebsiteOperators
* @param {string} websiteID
* @return {Promise}
*/
service.flushLastActiveWebsiteOperators = function(websiteID) {
return crisp.delete(
crisp._prepareRestUrl([
"website", websiteID, "operators", "active"
])
);
};
/**
* Send Email To Website Operators
* @memberof WebsiteOperator
* @public
* @method sendEmailToWebsiteOperators
* @param {string} websiteID
* @param {object} emailData
* @return {Promise}
*/
service.sendEmailToWebsiteOperators = function(websiteID, emailData) {
return crisp.post(
crisp._prepareRestUrl(["website", websiteID, "operators", "email"]),
null, emailData
);
};
/**
* Get A Website Operator
* @memberof WebsiteOperator
* @public
* @method getWebsiteOperator
* @param {string} websiteID
* @param {string} userID
* @return {Promise}
*/
service.getWebsiteOperator = function(websiteID, userID) {
return crisp.get(
crisp._prepareRestUrl([
"website", websiteID, "operator", userID
])
);
};
/**
* Invite A Website Operator
* @memberof WebsiteOperator
* @public
* @method inviteWebsiteOperator
* @param {string} websiteID
* @param {string} email
* @param {string} role
* @param {object} verify
* @return {Promise}
*/
service.inviteWebsiteOperator = function(websiteID, email, role, verify) {
return crisp.post(
crisp._prepareRestUrl(["website", websiteID, "operator"]),
null,
{
email : email,
role : role,
verify : verify
}
);
};
/**
* Change Operator Membership
* @memberof WebsiteOperator
* @public
* @method changeOperatorMembership
* @param {string} websiteID
* @param {string} userID
* @param {string} role
* @param {string} title
* @return {Promise}
*/
service.changeOperatorMembership = function(websiteID, userID, role, title) {
return crisp.patch(
crisp._prepareRestUrl(["website", websiteID, "operator", userID]),
null,
{
role : role,
title : title
}
);
};
/**
* Unlink Operator From Website
* @memberof WebsiteOperator
* @public
* @method unlinkOperatorFromWebsite
* @param {string} websiteID
* @param {string} userID
* @return {Promise}
*/
service.unlinkOperatorFromWebsite = function(websiteID, userID) {
return crisp.delete(
crisp._prepareRestUrl(["website", websiteID, "operator", userID])
);
};
}
module.exports = WebsiteOperator;