mpp-sdk
Version:
SDK to talk to the Memento Payments Platform
74 lines (73 loc) • 2.83 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const base_1 = require("./base");
const form_data_1 = tslib_1.__importDefault(require("form-data"));
class ImageEndpoint extends base_1.BaseEndpoint {
internalUpload(input) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const data = new form_data_1.default();
if ("file" in input) {
data.append("file", input.file);
}
else if ("url" in input) {
data.append("url", input.url);
}
else if ("encoded" in input) {
data.append("encoded", input.encoded);
}
if (input.type === "profile") {
data.append("user_image", "1");
}
else if (input.type === "transaction") {
data.append("transaction_image", "1");
data.append("funding_source_id", input.funding_source_id);
data.append("transaction_id", input.transaction_id);
}
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: "/images",
method: "POST",
headers,
data,
});
});
}
upload(options) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
let method = null;
if (options.file) {
method = { file: options.file };
}
else if (options.url) {
method = { url: options.url };
}
else if (options.encoded) {
method = { encoded: options.encoded };
}
if (options.user_image && method !== null) {
return this.internalUpload(Object.assign(Object.assign({}, method), { type: "profile" }));
}
});
}
uploadProfileImage(method) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return this.internalUpload(Object.assign(Object.assign({}, method), { type: "profile" }));
});
}
uploadTransactionImage(funding_source_id, transaction_id, method) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return this.internalUpload(Object.assign(Object.assign({}, method), { funding_source_id,
transaction_id, type: "transaction" }));
});
}
}
exports.default = ImageEndpoint;