Home Reference Source Repository

src/apis/api.ticket.js

import {RequestHandler} from '../request/handler';

/**
 * Ingresse Tickets Transfer API
 */
export class ApiTicketTransfer extends RequestHandler {
    /**
     * Creates a ticket transfer.
     *
     * @param {number} id - The ticket ID to get.
     * @param {object} [data]  - The form with transfer data for post.
     * @param {object} [query] - Optional request parameters.
     * @returns {Promise}
     *
     * @example
     * ...
     *
     * var ticketId = 123;
     * var data = {
     *      user: 456 //The user that will get the ticket
     * };
     *
     * ingresse.apiTickets.createTicketTransfer(ticketId, data)
     *     .then(function (response) {
     *         console.log(response);
     *     })
     *     .catch(function (error) {
     *         console.log(error);
     *     });
     *
     * ...
     *  // To return the ticket for the last owner
     *
     * var ticketId = 123;
     * var data = {
     *      isReturn: true //With this option, the ticket will return to last owner.
     * };
     *
     * ingresse.apiTickets.createTicketTransfer(ticketId, data)
     *     .then(function (response) {
     *         console.log(response);
     *     })
     *     .catch(function (error) {
     *         console.log(error);
     *     });
     */
    createTicketTransfer(id, data = {}, query = {}) {
        return this.post(`/ticket/${id}/transfer`, data, query);
    }

    /**
     * Update a ticket transfer.
     *
     * @param {number} id - The ticket ID to get.
     * @param {number} transferId - The transfer ID to get.
     * @param {object} [data]  - The form with transfer data to post.
     * @param {object} [query] - Optional request parameters.
     * @returns {Promise}
     *
     * @example
     * ...
     *
     * var ticketId = 123;
     * var transferId = 456;
     * var data = {
     *      action: 'accept' // can be [accept, cancel, refuse]
     * };
     *
     * ingresse.apiTickets.updateTicketTransfer(ticketId, transferId, data)
     *     .then(function (response) {
     *         console.log(response);
     *     })
     *     .catch(function (error) {
     *         console.log(error);
     *     });
     */
    updateTicketTransfer(id, transferId, data = {}, query = {}) {
        return this.post(`/ticket/${id}/transfer/${transferId}`, data, query);
    }

    /**
     * Get the ticket transfer history.
     *
     * @param {string|number} id - The ticket ID to get.
     * @param {object} [query]   - Optional request parameters.
     * @returns {Promise}
     */
    getTicketTransferHistory(id, query = {}) {
        return this.get(`/ticket/${id}/transfer`, query);
    }
}