UNPKG

whmcs-js

Version:
127 lines (124 loc) 4.44 kB
const WHMCS = require('../whmcs') /** * Allows you to manage your Tickets module in WHMCS. * @extends WHMCS */ class Tickets extends WHMCS { /** * @param {Object} config Object containing your API credentials. * @param {string} config.serverUrl URL to your installation. Remember to point to /includes/api.php * @param {string} [config.username] * @param {string} [config.password] * @param {string} [config.identifier] * @param {string} [config.secret] */ constructor (config) { super(config) } /** * Obtain a specific ticket - https://developers.whmcs.com/api-reference/getticket/ * @param {Object} opts * @param {String} [opts.ticketnum] Obtain the ticket for the specific Client Ticket Number * @param {Number} [opts.ticketid] Obtain the ticket for the specific ticket id (Either $ticketnum or $ticketid is required) * @param {String} [opts.repliessort] ASC or DESC. Which order to organise the ticket replies */ getTicket (opts) { const options = { action: 'GetTicket', ...opts } return this.callApi(options) } /** * Get the support statuses and number of tickets in each status - https://developers.whmcs.com/api-reference/getsupportstatuses/ * @param {Object} opts * @param {Number} [opts.deptid] Obtain counts for a specific department id */ getSupportStatuses (opts) { const options = { action: 'GetSupportStatuses', ...opts } return this.callApi(options) } /** * Obtain a specific ticket notes - https://developers.whmcs.com/api-reference/getticketnotes/ * @param {Object} opts * @param {Number} opts.ticketid Obtain the ticket for the specific ticket id */ getTicketNotes (opts) { const options = { action: 'GetTicketNotes', ...opts } return this.callApi(options) } /** * Get ticket counts. - https://developers.whmcs.com/api-reference/getticketcounts/ * @param {Object} opts * @param {Boolean} [opts.ignoreDepartmentAssignments] Pass as true to not adhere to the departments the API user is a member of. * @param {Boolean} [opts.includeCountsByStatus] Pass as true to not adhere to the departments the API user is a member of. */ getTicketCounts (opts) { const options = { action: 'GetTicketCounts', ...opts } return this.callApi(options) } /** * Obtain the Predefined Ticket Reply Categories - https://developers.whmcs.com/api-reference/getticketpredefinedcats/ * @param {Object} opts */ getTicketPredefinedCats (opts) { const options = { action: 'GetTicketPredefinedCats', ...opts } return this.callApi(options) } /** * Get the support departments and associated ticket counts - https://developers.whmcs.com/api-reference/getsupportdepartments/ * @param {Object} opts * @param {Boolean} [opts.ignore_dept_assignments] Pass as true to not adhere to the departments the API user is a member of. */ getSupportDepartments (opts) { const options = { action: 'GetSupportDepartments', ...opts } return this.callApi(options) } /** * Obtain the Predefined Ticket Replies - https://developers.whmcs.com/api-reference/getticketpredefinedreplies/ * @param {Object} opts * @param {Number} [opts.catid] Obtain predefined replies for a specific category id */ getTicketPredefinedReplies (opts) { const options = { action: 'GetTicketPredefinedReplies', ...opts } return this.callApi(options) } /** * Obtain tickets matching the passed criteria - https://developers.whmcs.com/api-reference/gettickets/ * @param {Object} opts * @param {Number} [opts.limitstart] The offset for the returned quote data (default: 0) * @param {Number} [opts.limitnum] The number of records to return (default: 25) * @param {Number} [opts.deptid] Obtain tickets in a specific department * @param {Number} [opts.clientid] Find tickets for a specific client id * @param {String} [opts.email] Find tickets for a specific non-client email address * @param {String} [opts.status] Find tickets matching a specific status. Any configured status plus: Awaiting Reply, All Active Tickets, My Flagged Tickets * @param {String} [opts.subject] Find tickets containing a specific subject - uses approximate string matching. * @param {Boolean} [opts.ignore_dept_assignments] Pass as true to not adhere to the departments the API user is a member of. */ getTickets (opts) { const options = { action: 'GetTickets', ...opts } return this.callApi(options) } } module.exports = Tickets