UNPKG

mpp-sdk

Version:

SDK to talk to the Memento Payments Platform

111 lines (110 loc) 3.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const base_js_1 = require("./base.js"); const helpers_js_1 = require("../utils/helpers.js"); class TransactionsEndpoint extends base_js_1.BaseEndpoint { /** * Gets available transactions for current user * @returns a list of available transactions */ list(filters) { return this.doRequest({ url: "/transactions/", method: "GET", params: (0, helpers_js_1.filtersToParams)(filters || {}), }); } /** * Gets available transactions for current user with the "missing_data" status * @returns a list of available transactions */ todo(filters) { return this.doRequest({ url: "/transactions/todo", method: "GET", params: (0, helpers_js_1.filtersToParams)(filters || {}), }); } /** * Gets a transaction * @param data * @returns transaction */ get(id) { return this.doRequest({ url: `/transactions/${id}`, method: "GET", }); } /** * Gets available transaction categories for current user * @returns a list of available transaction categories */ categories(filters) { return this.doRequest({ url: "/transactions/categories", method: "GET", params: (0, helpers_js_1.filtersToParams)(filters || {}), }); } /** * Updates a transaction * @returns the updated transaction object */ update(id, data) { return this.doRequest({ url: `/transactions/${id}`, method: "PATCH", data, }); } /** * Gets all receipts fro a transaction * @returns a list of receipts for a transactions */ listReceipts(transaction_id) { return this.doRequest({ url: "/transactions/${transaction_id}/receipts/", method: "GET", }); } /** * Uploads a receipt for a transaction * @returns a transaction receipt */ uploadReceipt(transaction_id, input) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const data = new FormData(); data.append("file", input.file); let headers = { "Content-Type": "multipart/form-data", }; // form-data nodejs polyfill needs this since axios // does not correctly set the multipart form boundary when running // in nodejs. if (data.getHeaders) { headers = data.getHeaders(); } return this.doRequest({ url: `/transactions/${transaction_id}/receipts/`, method: "POST", headers, data, }); }); } /** * Overrides the team of a transaction. * @param transaction_id * @param team_id * @returns the affected transaction */ setTeam(transaction_id, team_id) { return this.doRequest({ url: `/transactions/${transaction_id}/team/${team_id}`, method: "PUT", }); } } exports.default = TransactionsEndpoint;