UNPKG

fedapay

Version:

NodeJs library for FedaPay Api

249 lines (248 loc) 8.68 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.Payout = void 0; var _1 = require("."); var Util_1 = require("./Util"); /** * Class Payout * * @property int $id * @property string $reference * @property string $amount * @property string $status * @property int $customer_id * @property int $balance_id * @property string $mode * @property int $last_error_code * @property string $last_error_message * @property string $created_at * @property string $updated_at * @property string $scheduled_at * @property string $sent_at * @property string $failed_at * @property string $deleted_at */ var Payout = /** @class */ (function (_super) { __extends(Payout, _super); function Payout() { return _super !== null && _super.apply(this, arguments) || this; } /** * Create a payout * * @param {Object|null} params * @param headers */ Payout.create = function (params, headers) { if (params === void 0) { params = {}; } if (headers === void 0) { headers = {}; } return this._create(params, headers); }; /** * @param {Object|null} params * @param {Object|null} headers * @returns {Promise<FedaPayObject>} */ Payout.all = function (params, headers) { if (params === void 0) { params = {}; } if (headers === void 0) { headers = {}; } return this._all(params, headers); }; /** * @param {string|number} id * @param {Object|null} params * @param {Object|null} headers * @returns {Promise<Payout>} */ Payout.retrieve = function (id, params, headers) { if (params === void 0) { params = {}; } if (headers === void 0) { headers = {}; } return this._retrieve(id, params, headers); }; /** * @param {string|number} id string The ID of the Payout to update. * @param {object|null} params * @param {object|null} headers * * @returns {Promise<Payout>} */ Payout.update = function (id, params, headers) { if (params === void 0) { params = {}; } if (headers === void 0) { headers = {}; } return this._update(id, params, headers); }; /** * @param {array|string|null} $headers * @returns {Promise<Payout>} The saved Payout. */ Payout.prototype.save = function (headers) { if (headers === void 0) { headers = {}; } return this._save(headers); }; /** * @param {array} $headers * @returns Payout The deleted Payout. */ Payout.prototype.delete = function (headers) { if (headers === void 0) { headers = {}; } return this._delete(headers); }; /** * @param {any} params * @param {any} headers * * @returns {Promise<Payout>} */ Payout.prototype._start = function (params, headers) { var _this = this; var path = Payout.resourcePath('start'); return Payout._staticRequest('put', path, params, headers) .then(function (_a) { var data = _a.data, options = _a.options; var object = (0, Util_1.arrayToFedaPayObject)(data, options); _this.refreshFrom(object['payouts'][0], options); return _this; }); }; /** * @param {any} params * @param {any} headers * * @returns {Promise<FedaPayObject>} */ Payout._startAll = function (params, headers) { var path = this.resourcePath('start'); return this._staticRequest('put', path, params, headers) .then(function (_a) { var data = _a.data, options = _a.options; return (0, Util_1.arrayToFedaPayObject)(data, options); }); }; /** * Send the payout now * * @param {array|string|null} params * @param {array|string|null} headers * * @returns {Promise<Payout>} The saved Payout. */ Payout.prototype.sendNow = function (params, headers) { if (params === void 0) { params = {}; } if (headers === void 0) { headers = {}; } var payout_params = { id: this.id }; if (params.phone_number) { payout_params.phone_number = params.phone_number; delete params.phone_number; // Remove phone_number from params } var _params = { payouts: [payout_params] }; params = Object.assign(_params, params); return this._start(params, headers); }; /** * Start the payout * @param {Date|string|number} scheduled_at * @param {array|string|null} params * @param {array|string|null} headers * * @returns {Promise<Payout>} The saved Payout. */ Payout.prototype.schedule = function (scheduled_at, params, headers) { if (params === void 0) { params = {}; } if (headers === void 0) { headers = {}; } scheduled_at = (0, Util_1.toDateString)(scheduled_at); var payout_params = { id: this.id, scheduled_at: scheduled_at }; if (params.phone_number) { payout_params.phone_number = params.phone_number; delete params.phone_number; // Remove phone_number from params } var _params = { payouts: [payout_params] }; params = Object.assign(_params, params); return this._start(params, headers); }; /** * Start a scheduled payout * * @param {array} payouts * @param {array|string|null} params * @param {array|string|null} headers * * @returns {Promise<FedaPayObject>} */ Payout.scheduleAll = function (payouts, params, headers) { if (payouts === void 0) { payouts = []; } if (params === void 0) { params = {}; } if (headers === void 0) { headers = {}; } var items = []; payouts.forEach(function (payout, index) { var item = {}; if (!payout['id']) { throw new Error('Invalid id argument. You must specify payout id.'); } item['id'] = payout['id']; if (payout['scheduled_at']) { item['scheduled_at'] = (0, Util_1.toDateString)(payout['scheduled_at']); } if (params[index] && params[index]['phone_number']) { item['phone_number'] = params[index]['phone_number']; delete params[index]['phone_number']; // Remove phone_number from params } items.push(item); }); var _params = { payouts: items }; params = Object.assign(_params, params); return this._startAll(params, headers); }; /** * Start a scheduled payout * * @param {array} payouts * @param {array|string|null} params * @param {array|string|null} headers * * @returns {Promise<FedaPayObject>} */ Payout.sendAllNow = function (payouts, params, headers) { if (payouts === void 0) { payouts = []; } if (params === void 0) { params = {}; } if (headers === void 0) { headers = {}; } var items = []; payouts.forEach(function (payout, index) { var item = {}; if (!payout['id']) { throw new Error('Invalid id argument. You must specify payout id.'); } item['id'] = payout['id']; if (params[index] && params[index]['phone_number']) { item['phone_number'] = params[index]['phone_number']; delete params[index]['phone_number']; // Remove phone_number from params } items.push(item); }); var _params = { payouts: items }; console.log(params); params = Object.assign(_params, params); return this._startAll(params, headers); }; Payout.ressourceName = 'payout'; return Payout; }(_1.Resource)); exports.Payout = Payout;