Home Reference Source Repository

src/apis/coupon.js

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

/**
 * Ingresse Coupon API
 */
export class Coupon extends RequestHandler {
    /**
     * Coupon
     *
     * @param {object} [custom] - Initialize Coupon settings.
     */
    constructor(custom = {}) {
        let settings = Object.assign({
            auth    : auth.Jwt.type(),
            resource: 'coupon',
        }, custom);

        super(settings);

        this.settings = settings;
    }

    /**
     * Get a list of coupon
     *
     * @param {object} [query] - Optional request parameters.
     * @returns {Promise}
     */
    getCoupons(query = {}) {
        return this.get('/coupons', query);
    }

    /**
     * Get a coupon
     *
     * @param {string} id      - Coupon ID.
     * @param {object} [query] - Optional request parameters.
     * @returns {Promise}
     */
    getCoupon(id, query = {}) {
        return this.get(`/coupons/${id}`, query);
    }

    /**
     * Create the coupon
     *
     * @param {object} body    - Coupon data.
     * @param {object} [query] - Optional request parameters.
     * @returns {Promise}
     */
    createCoupon(body, query = {}) {
        return this.post('/coupons', body, query);
    }

    /**
     * Update the coupon
     *
     * @param {string} id      - Transaction ID.
     * @param {object} body    - Coupon data.
     * @param {object} [query] - Optional request parameters.
     * @returns {Promise}
     */
    updateCoupon(id, body, query = {}) {
        return this.put(`/coupons/${id}`, body, query);
    }

    /**
     * Delete the coupon
     *
     * @param {string} id      - Transaction ID.
     * @param {object} [query] - Optional request parameters.
     * @returns {Promise}
     */
    deleteCoupon(id, query = {}) {
        return this.delete(`/coupons/${id}`, query);
    }
}