UNPKG

c8osdkvuejs

Version:

convertigo's MBaaS client API service

311 lines 14.7 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [0, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); var c8oHttpInterfaceCore_1 = require("c8osdkjscore/src/c8o/c8oHttpInterfaceCore"); var c8oProgress_1 = require("c8osdkjscore/src/c8o/c8oProgress"); var c8oExceptionMessage_1 = require("c8osdkjscore/src/c8o/Exception/c8oExceptionMessage"); var c8oHttpRequestException_1 = require("c8osdkjscore/src/c8o/Exception/c8oHttpRequestException"); var c8o_service_1 = require("./c8o.service"); var C8oHttpInterface = (function (_super) { __extends(C8oHttpInterface, _super); function C8oHttpInterface(c8o) { return _super.call(this, c8o) || this; } C8oHttpInterface.prototype.checkFile = function (parameters) { for (var p in parameters) { if (parameters[p] instanceof Array) { for (var p1 in parameters[p]) { if (parameters[p][p1] instanceof FileList) { return 1; } else if (this.isCordova()) { if (parameters[p][p1] instanceof URL) { return 2; } } } } else { if (parameters[p] instanceof FileList) { return 1; } else if (this.isCordova()) { if (parameters[p] instanceof URL) { return 2; } } } } return 0; }; C8oHttpInterface.prototype.transformRequest = function (parameters) { var str = []; for (var p in parameters) { if (parameters[p] instanceof Array) { for (var p1 in parameters[p]) { if (parameters[p].hasOwnProperty(p1)) { str.push(encodeURIComponent(p) + "=" + encodeURIComponent(parameters[p][p1])); } } } else { str.push(encodeURIComponent(p) + "=" + encodeURIComponent(parameters[p])); } } var query = str.join("&"); return (query + "&__removeNamespaces=true"); }; C8oHttpInterface.prototype.transformRequestformdata = function (parameters) { var formdata = new FormData(); for (var p in parameters) { if (parameters[p] instanceof Array) { for (var p1 in parameters[p]) { if (parameters[p][p1] instanceof FileList) { for (var _i = 0, _a = parameters[p][p1]; _i < _a.length; _i++) { var i = _a[_i]; formdata.append(p, parameters[p][p1][i], parameters[p][p1][i].name); } } else { formdata.append(p, parameters[p][p1]); } } } else { if (parameters[p] instanceof FileList) { for (var _b = 0, _c = parameters[p]; _b < _c.length; _b++) { var j = _c[_b]; formdata.append(p, parameters[p][j], parameters[p][j].name); } } else { formdata.append(p, parameters[p]); } } } return formdata; }; C8oHttpInterface.prototype.transformRequestfileNative = function (parameters) { var file = new Array(); var params = new Object(); for (var p in parameters) { if (parameters[p] instanceof Array) { for (var p1 in parameters[p]) { if (parameters[p][p1] instanceof URL) { file.push([p1, parameters[p][p1]]); } else { params[p1] = parameters[p][p1]["href"]; } } } else { if (parameters[p] instanceof URL) { file.push([p, parameters[p]["href"]]); } else { params[p] = parameters[p]; } } } return [file, params]; }; C8oHttpInterface.prototype.handleRequest = function (url, parameters, c8oResponseListener) { return __awaiter(this, void 0, void 0, function () { var form; return __generator(this, function (_a) { if (parameters["__sequence"] !== undefined) { if (parameters["__sequence"].indexOf("#") !== -1) { parameters["__sequence"] = parameters["__sequence"].substring(0, parameters["__sequence"].indexOf("#")); } } switch (this.checkFile(parameters)) { case 0: { return [2, this.httpPost(url, parameters)]; } case 1: { form = this.transformRequestformdata(parameters); return [2, this.uploadFileHttp(url, form, parameters, c8oResponseListener)]; } case 2: { return [2, this.uploadFilePluginNative(url, parameters, c8oResponseListener)]; } } return [2]; }); }); }; C8oHttpInterface.prototype.uploadFilePluginNative = function (url, parameters, c8oResponseListener) { var _this = this; var progress = new c8oProgress_1.C8oProgress(); progress.pull = false; var varNull = null; var data = this.transformRequestfileNative(parameters); var files = data[0]; var options = new window["FileUploadOptions"](); options.fileKey = files[0][0]; options.fileName = files[0][1].substr(files[0][1].lastIndexOf("/") + 1); options.params = data[1]; var headersObject = { "Accept": "application/json", "x-convertigo-sdk": this.c8o.sdkVersion }; Object.assign(headersObject, this.c8o.headers); options.headers = headersObject; return new Promise(function (resolve, reject) { Promise.all([_this.p1]).then(function () { var ft = new window["FileTransfer"](); ft.onprogress = function (progressEvent) { if (progressEvent.lengthComputable) { _this.handleProgress(progressEvent, progress, parameters, c8oResponseListener, varNull); } }; ft.upload(files[0][1], encodeURI(url), ((function (resp) { resolve(resp); })), (function (err) { reject(err); }), options); }); }); }; C8oHttpInterface.prototype.httpPost = function (url, parameters) { var _this = this; parameters = this.transformRequest(parameters); var headersObject = { "Content-Type": "application/x-www-form-urlencoded", "x-convertigo-sdk": this.c8o.sdkVersion }; Object.assign(headersObject, this.c8o.headers); var headers = { headers: (headersObject) }; if (this.firstCall) { this.p1 = new Promise(function (resolve, reject) { _this.firstCall = false; _this.c8o.httpPublic.post(url, parameters, { headers: headers, withCredentials: true, }).then(function (response) { return resolve(response.data); }).catch(function (error) { resolve({ error: (new c8oHttpRequestException_1.C8oHttpRequestException(c8oExceptionMessage_1.C8oExceptionMessage.runHttpRequest(), error)), }); }); }); return this.p1; } else { return new Promise(function (resolve, reject) { Promise.all([_this.p1]).then(function () { _this.c8o.httpPublic.post(url, parameters, { headers: headers, withCredentials: true, }).then(function (response) { return resolve(response.data); }).catch(function (error) { resolve({ error: (new c8oHttpRequestException_1.C8oHttpRequestException(c8oExceptionMessage_1.C8oExceptionMessage.runHttpRequest(), error)), }); }); }).catch(function (error) { reject(error); }); }); } }; C8oHttpInterface.prototype.uploadFileHttp = function (url, form, parameters, c8oResponseListener) { var _this = this; var headersObject = { "Accept": "application/json", "x-convertigo-sdk": this.c8o.sdkVersion }; Object.assign(headersObject, this.c8o.headers); var headers = { headers: headersObject }; var progress = new c8oProgress_1.C8oProgress(); progress.pull = false; var varNull = null; if (this.firstCall) { this.p1 = new Promise(function (resolve) { _this.firstCall = false; _this.c8o.httpPublic.post({ url: url, data: form, withCredentials: true, headers: headers, onUploadProgress: function (event) { this.handleProgress(event, progress, parameters, c8oResponseListener, varNull); } }, { headers: headers, withCredentials: true, }).then(function (response) { return resolve(response.data); }).catch(function (error) { resolve({ error: (new c8oHttpRequestException_1.C8oHttpRequestException(c8oExceptionMessage_1.C8oExceptionMessage.runHttpRequest(), error)), }); }); }); return this.p1; } else { return new Promise(function (resolve) { Promise.all([_this.p1]).then(function () { _this.c8o.httpPublic.post({ url: url, data: form, withCredentials: true, headers: headers, onUploadProgress: function (event) { this.handleProgress(event, progress, parameters, c8oResponseListener, varNull); } }, { headers: headers, withCredentials: true, }).then(function (response) { return resolve(response.data); }).catch(function (error) { resolve({ error: (new c8oHttpRequestException_1.C8oHttpRequestException(c8oExceptionMessage_1.C8oExceptionMessage.runHttpRequest(), error)), }); }); }); }); } }; C8oHttpInterface.prototype.handleProgress = function (event, progress, parameters, c8oResponseListener, varNull) { progress.current = event.loaded; progress.total = event.total; progress.finished = event.loaded === event.total; parameters[c8o_service_1.C8o.ENGINE_PARAMETER_PROGRESS] = progress; c8oResponseListener.onJsonResponse(varNull, parameters); }; C8oHttpInterface.prototype.isCordova = function () { if (this._isCordova == null) { this._isCordova = window["cordova"] !== undefined; } return this._isCordova; }; return C8oHttpInterface; }(c8oHttpInterfaceCore_1.C8oHttpInterfaceCore)); exports.C8oHttpInterface = C8oHttpInterface; //# sourceMappingURL=c8oHttpInterface.service.js.map