pubnub
Version:
Publish & Subscribe Real-time Messaging with PubNub
212 lines (176 loc) • 6.08 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.postfile = postfile;
exports.getfile = getfile;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _flow_interfaces = require("../../core/flow_interfaces");
var _webNode = require("./web-node");
function postfileuri(_x, _x2, _x3) {
return _postfileuri.apply(this, arguments);
}
function _postfileuri() {
_postfileuri = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(url, fields, fileInput) {
var formData, result;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
formData = new FormData();
fields.forEach(function (_ref2) {
var key = _ref2.key,
value = _ref2.value;
formData.append(key, value);
});
formData.append('file', fileInput);
_context2.next = 5;
return fetch(url, {
method: 'POST',
body: formData
});
case 5:
result = _context2.sent;
return _context2.abrupt("return", result);
case 7:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return _postfileuri.apply(this, arguments);
}
function postfile(_x4, _x5, _x6) {
return _postfile.apply(this, arguments);
}
function _postfile() {
_postfile = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(url, fields, fileInput) {
return _regenerator["default"].wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
if (fileInput.uri) {
_context3.next = 4;
break;
}
return _context3.abrupt("return", (0, _webNode.postfile)(url, fields, fileInput));
case 4:
return _context3.abrupt("return", postfileuri(url, fields, fileInput));
case 5:
case "end":
return _context3.stop();
}
}
}, _callee3);
}));
return _postfile.apply(this, arguments);
}
function getfile(params, endpoint, callback) {
var _this = this;
var url = this.getStandardOrigin() + endpoint.url;
if (params && Object.keys(params).length > 0) {
var searchParams = new URLSearchParams(params);
if (endpoint.url.indexOf('?') > -1) {
url += '&';
} else {
url += '?';
}
url += searchParams.toString();
}
var fetchResult = fetch(url, {
method: 'GET',
headers: endpoint.headers
});
fetchResult.then(function () {
var _ref = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(resp) {
var parsedResponse, status;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
status = {};
status.error = false;
status.operation = endpoint.operation;
if (resp && resp.status) {
status.statusCode = resp.status;
}
if (!endpoint.ignoreBody) {
_context.next = 8;
break;
}
parsedResponse = {
headers: resp.headers,
redirects: [],
response: resp
};
_context.next = 21;
break;
case 8:
_context.prev = 8;
_context.t0 = JSON;
_context.next = 12;
return resp.text();
case 12:
_context.t1 = _context.sent;
parsedResponse = _context.t0.parse.call(_context.t0, _context.t1);
_context.next = 21;
break;
case 16:
_context.prev = 16;
_context.t2 = _context["catch"](8);
status.errorData = resp;
status.error = true;
return _context.abrupt("return", callback(status, null));
case 21:
if (!(parsedResponse.error && parsedResponse.error === 1 && parsedResponse.status && parsedResponse.message && parsedResponse.service)) {
_context.next = 29;
break;
}
status.errorData = parsedResponse;
status.statusCode = parsedResponse.status;
status.error = true;
status.category = _this._detectErrorCategory(status);
return _context.abrupt("return", callback(status, null));
case 29:
if (parsedResponse.error && parsedResponse.error.message) {
status.errorData = parsedResponse.error;
}
case 30:
return _context.abrupt("return", callback(status, {
response: {
body: resp
}
}));
case 31:
case "end":
return _context.stop();
}
}
}, _callee, null, [[8, 16]]);
}));
return function (_x7) {
return _ref.apply(this, arguments);
};
}());
fetchResult["catch"](function (err) {
var status = {};
status.error = true;
status.operation = endpoint.operation;
if (err.response && err.response.text && !_this._config.logVerbosity) {
try {
status.errorData = JSON.parse(err.response.text);
} catch (e) {
status.errorData = err;
}
} else {
status.errorData = err;
}
status.category = _this._detectErrorCategory(err);
return callback(status, null);
});
return fetchResult;
}
//# sourceMappingURL=react_native.js.map