/home/aqcert/public_html/admin/tinymce/js/tinymce/plugins/imagetools/src/main/js
Edit: /home/aqcert/public_html/admin/tinymce/js/tinymce/plugins/imagetools/src/main/js/Proxy.js (1941B)
/**
* Proxy.js
*
* Released under LGPL License.
* Copyright (c) 1999-2016 Ephox Corp. All rights reserved
*
* License: http://www.tinymce.com/license
* Contributing: http://www.tinymce.com/contributing
*/
/**
* Handles loading images though a proxy for working around cors.
*/
define("tinymce/imagetoolsplugin/Proxy", [
"global!tinymce.util.Promise",
"global!tinymce.util.Tools",
"tinymce/imagetoolsplugin/Utils"
], function(Promise, Tools, Utils) {
var isServiceErrorCode = function (code) {
return code === 400 || code === 403 || code === 500;
};
var handleHttpError = function (status) {
return Promise.reject("ImageProxy HTTP error: " + status);
};
var proxyServiceError = function (error) {
Promise.reject("ImageProxy Service error: " + error);
};
var handleServiceError = function (status, blob) {
return Utils.readBlob(blob).then(function(text) {
var serviceError = Utils.parseJson(text);
var errorType = Utils.traverse(serviceError, ['error', 'type']);
return errorType ? proxyServiceError(errorType) : proxyServiceError('Invalid JSON');
});
};
var handleServiceErrorResponse = function (status, blob) {
return isServiceErrorCode(status) ? handleServiceError(status, blob) : handleHttpError(status);
};
var requestServiceBlob = function (url, apiKey) {
return Utils.requestUrlAsBlob(url, {
'Content-Type': 'application/json;charset=UTF-8',
'tiny-api-key': apiKey
}).then(function (result) {
return result.status >= 400 ? handleServiceErrorResponse(result.status, result.blob) : Promise.resolve(result.blob);
});
};
function requestBlob(url) {
return Utils.requestUrlAsBlob(url, {}).then(function (result) {
return result.status >= 400 ? handleHttpError(result.status) : Promise.resolve(result.blob);
});
}
var getUrl = function (url, apiKey) {
return apiKey ? requestServiceBlob(url, apiKey) : requestBlob(url);
};
return {
getUrl: getUrl
};
});