filestack-js
Version:
Official JavaScript library for Filestack
90 lines (88 loc) • 10.8 kB
JavaScript
/*
* Copyright (c) 2018 by Filestack.
* Some rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.storeURL = void 0;
var tslib_1 = require("tslib");
var filelink_1 = require("./../filelink");
var filestack_error_1 = require("./../../filestack_error");
var schema_1 = require("./../../schema");
var request_1 = require("../request");
/**
* Store given url with options and
*
* @param session
* @param url
* @param storeOpts
* @param token
* @param security
* @param uploadTags
* @param workflowIds
*/
var storeURL = function (_a) {
var session = _a.session, url = _a.url, storeParams = _a.storeParams, token = _a.token, security = _a.security, uploadTags = _a.uploadTags, headers = _a.headers, workflowIds = _a.workflowIds;
if (!url || typeof url !== 'string') {
return Promise.reject(new filestack_error_1.FilestackError('url is required for storeURL'));
}
var validateRes = (0, schema_1.getValidator)(schema_1.StoreParamsSchema)(storeParams);
if (validateRes.errors.length) {
return Promise.reject(new filestack_error_1.FilestackError("Invalid store params", validateRes.errors));
}
session.policy = security && security.policy || session.policy;
session.signature = security && security.signature || session.signature;
var filelink = new filelink_1.Filelink(url, session.apikey);
filelink.store(storeParams);
if (session.policy && session.signature) {
filelink.security({
policy: session.policy,
signature: session.signature,
});
}
var options = {};
if (token) {
var cancelToken = new request_1.FsCancelToken();
token.cancel = cancelToken.cancel.bind(cancelToken);
options.cancelToken = cancelToken;
}
var sources = [url];
if (headers) {
sources = [{
source: url,
headers: headers,
}];
}
if (workflowIds && workflowIds.length > 0) {
filelink.addTask('store', { workflows: workflowIds });
}
return request_1.FsRequest.post("".concat(session.urls.processUrl, "/process"), {
apikey: session.apikey,
sources: sources,
tasks: filelink.getTasks(),
upload_tags: uploadTags,
}, options).then(function (res) {
if (res.data && res.data.handle) {
if (res.data.upload_tags) {
res.data.uploadTags = res.data.upload_tags;
delete res.data.upload_tags;
}
return tslib_1.__assign(tslib_1.__assign({}, res.data), { mimetype: res.data.type });
}
throw new filestack_error_1.FilestackError("Invalid store response ".concat(JSON.stringify(res.data)));
});
};
exports.storeURL = storeURL;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7Ozs7QUFHSCwwQ0FBc0Q7QUFDdEQsMkRBQXlEO0FBQ3pELHlDQUFpRTtBQUNqRSxzQ0FBc0Q7QUFjdEQ7Ozs7Ozs7Ozs7R0FVRztBQUNJLElBQU0sUUFBUSxHQUFHLFVBQUMsRUFTUjtRQVJmLE9BQU8sYUFBQSxFQUNQLEdBQUcsU0FBQSxFQUNILFdBQVcsaUJBQUEsRUFDWCxLQUFLLFdBQUEsRUFDTCxRQUFRLGNBQUEsRUFDUixVQUFVLGdCQUFBLEVBQ1YsT0FBTyxhQUFBLEVBQ1AsV0FBVyxpQkFBQTtJQUVYLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQ25DLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdDQUFjLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO0tBQzNFO0lBRUQsSUFBTSxXQUFXLEdBQUcsSUFBQSxxQkFBWSxFQUFDLDBCQUFpQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxnQ0FBYyxDQUFDLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQ3ZGO0lBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9ELE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUV4RSxJQUFNLFFBQVEsR0FBRyxJQUFJLG1CQUFRLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTVCLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQ3ZDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDaEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztTQUM3QixDQUFDLENBQUM7S0FDSjtJQUVELElBQUksT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUV0QixJQUFJLEtBQUssRUFBRTtRQUNULElBQU0sV0FBVyxHQUFHLElBQUksdUJBQWEsRUFBRSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7S0FDbkM7SUFFRCxJQUFJLE9BQU8sR0FBUSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBRTNCLElBQUksT0FBTyxFQUFFO1FBQ1gsT0FBTyxHQUFHLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsT0FBTyxTQUFBO2FBQ1IsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN6QyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsT0FBTyxtQkFBUyxDQUFDLElBQUksQ0FBQyxVQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxhQUFVLEVBQUU7UUFDMUQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3RCLE9BQU8sU0FBQTtRQUNQLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFO1FBQzFCLFdBQVcsRUFBRSxVQUFVO0tBQ3hCLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRztRQUNuQixJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDeEIsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQzNDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDN0I7WUFFRCw2Q0FBWSxHQUFHLENBQUMsSUFBSSxLQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBRztTQUNqRDtRQUVELE1BQU0sSUFBSSxnQ0FBYyxDQUFDLGlDQUEwQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBRSxDQUFDLENBQUM7SUFDakYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUF2RVcsUUFBQSxRQUFRLFlBdUVuQiIsImZpbGUiOiJsaWIvYXBpL3N0b3JlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU2VjdXJpdHksIFNlc3Npb24gfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgRmlsZWxpbmssIFN0b3JlUGFyYW1zIH0gZnJvbSAnLi8uLi9maWxlbGluayc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgU3RvcmVQYXJhbXNTY2hlbWEgfSBmcm9tICcuLy4uLy4uL3NjaGVtYSc7XG5pbXBvcnQgeyBGc1JlcXVlc3QsIEZzQ2FuY2VsVG9rZW4gfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IFVwbG9hZFRhZ3MgfSBmcm9tICcuL3VwbG9hZC9maWxlJztcblxuZXhwb3J0IHR5cGUgU3RvcmVVcmxQYXJhbXMgPSB7XG4gIHNlc3Npb246IFNlc3Npb247XG4gIHVybD86IHN0cmluZztcbiAgc3RvcmVQYXJhbXM/OiBTdG9yZVBhcmFtcztcbiAgdG9rZW4/OiBhbnk7XG4gIHNlY3VyaXR5PzogU2VjdXJpdHk7XG4gIHVwbG9hZFRhZ3M/OiBVcGxvYWRUYWdzO1xuICBoZWFkZXJzPzoge1trZXk6IHN0cmluZ106IHN0cmluZ30sXG4gIHdvcmtmbG93SWRzPzogc3RyaW5nW11cbn07XG5cbi8qKlxuICogU3RvcmUgZ2l2ZW4gdXJsIHdpdGggb3B0aW9ucyBhbmRcbiAqXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHVybFxuICogQHBhcmFtIHN0b3JlT3B0c1xuICogQHBhcmFtIHRva2VuXG4gKiBAcGFyYW0gc2VjdXJpdHlcbiAqIEBwYXJhbSB1cGxvYWRUYWdzXG4gKiBAcGFyYW0gd29ya2Zsb3dJZHNcbiAqL1xuZXhwb3J0IGNvbnN0IHN0b3JlVVJMID0gKHtcbiAgc2Vzc2lvbixcbiAgdXJsLFxuICBzdG9yZVBhcmFtcyxcbiAgdG9rZW4sXG4gIHNlY3VyaXR5LFxuICB1cGxvYWRUYWdzLFxuICBoZWFkZXJzLFxuICB3b3JrZmxvd0lkcyxcbn06IFN0b3JlVXJsUGFyYW1zKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgaWYgKCF1cmwgfHwgdHlwZW9mIHVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEZpbGVzdGFja0Vycm9yKCd1cmwgaXMgcmVxdWlyZWQgZm9yIHN0b3JlVVJMJykpO1xuICB9XG5cbiAgY29uc3QgdmFsaWRhdGVSZXMgPSBnZXRWYWxpZGF0b3IoU3RvcmVQYXJhbXNTY2hlbWEpKHN0b3JlUGFyYW1zKTtcblxuICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgc3RvcmUgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzKSk7XG4gIH1cblxuICBzZXNzaW9uLnBvbGljeSA9IHNlY3VyaXR5ICYmIHNlY3VyaXR5LnBvbGljeSB8fCBzZXNzaW9uLnBvbGljeTtcbiAgc2Vzc2lvbi5zaWduYXR1cmUgPSBzZWN1cml0eSAmJiBzZWN1cml0eS5zaWduYXR1cmUgfHwgc2Vzc2lvbi5zaWduYXR1cmU7XG5cbiAgY29uc3QgZmlsZWxpbmsgPSBuZXcgRmlsZWxpbmsodXJsLCBzZXNzaW9uLmFwaWtleSk7XG4gIGZpbGVsaW5rLnN0b3JlKHN0b3JlUGFyYW1zKTtcblxuICBpZiAoc2Vzc2lvbi5wb2xpY3kgJiYgc2Vzc2lvbi5zaWduYXR1cmUpIHtcbiAgICBmaWxlbGluay5zZWN1cml0eSh7XG4gICAgICBwb2xpY3k6IHNlc3Npb24ucG9saWN5LFxuICAgICAgc2lnbmF0dXJlOiBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgICB9KTtcbiAgfVxuXG4gIGxldCBvcHRpb25zOiBhbnkgPSB7fTtcblxuICBpZiAodG9rZW4pIHtcbiAgICBjb25zdCBjYW5jZWxUb2tlbiA9IG5ldyBGc0NhbmNlbFRva2VuKCk7XG4gICAgdG9rZW4uY2FuY2VsID0gY2FuY2VsVG9rZW4uY2FuY2VsLmJpbmQoY2FuY2VsVG9rZW4pO1xuICAgIG9wdGlvbnMuY2FuY2VsVG9rZW4gPSBjYW5jZWxUb2tlbjtcbiAgfVxuXG4gIGxldCBzb3VyY2VzOiBhbnkgPSBbIHVybCBdO1xuXG4gIGlmIChoZWFkZXJzKSB7XG4gICAgc291cmNlcyA9IFt7XG4gICAgICBzb3VyY2U6IHVybCxcbiAgICAgIGhlYWRlcnMsXG4gICAgfV07XG4gIH1cblxuICBpZiAod29ya2Zsb3dJZHMgJiYgd29ya2Zsb3dJZHMubGVuZ3RoID4gMCkge1xuICAgIGZpbGVsaW5rLmFkZFRhc2soJ3N0b3JlJywgeyB3b3JrZmxvd3M6IHdvcmtmbG93SWRzIH0pO1xuICB9XG5cbiAgcmV0dXJuIEZzUmVxdWVzdC5wb3N0KGAke3Nlc3Npb24udXJscy5wcm9jZXNzVXJsfS9wcm9jZXNzYCwge1xuICAgIGFwaWtleTogc2Vzc2lvbi5hcGlrZXksXG4gICAgc291cmNlcyxcbiAgICB0YXNrczogZmlsZWxpbmsuZ2V0VGFza3MoKSxcbiAgICB1cGxvYWRfdGFnczogdXBsb2FkVGFncyxcbiAgfSwgb3B0aW9ucykudGhlbigocmVzKSA9PiB7XG4gICAgaWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhLmhhbmRsZSkge1xuICAgICAgaWYgKHJlcy5kYXRhLnVwbG9hZF90YWdzKSB7XG4gICAgICAgIHJlcy5kYXRhLnVwbG9hZFRhZ3MgPSByZXMuZGF0YS51cGxvYWRfdGFncztcbiAgICAgICAgZGVsZXRlIHJlcy5kYXRhLnVwbG9hZF90YWdzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4geyAuLi5yZXMuZGF0YSwgbWltZXR5cGU6IHJlcy5kYXRhLnR5cGUgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgc3RvcmUgcmVzcG9uc2UgJHtKU09OLnN0cmluZ2lmeShyZXMuZGF0YSl9YCk7XG4gIH0pO1xufTtcbiJdfQ==
;