UNPKG

@esri/solution-common

Version:

Provides general helper functions for @esri/solution.js.

44 lines 2.4 kB
"use strict"; /** @license * Copyright 2021 Esri * * 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.copyMetadataIntoItem = void 0; const addMetadataFromBlob_1 = require("./addMetadataFromBlob"); const createCopyResults_1 = require("./createCopyResults"); const get_blob_1 = require("./get-blob"); // ------------------------------------------------------------------------------------------------------------------ // /** * Copies metadata into an AGO item. * * @param fileInfo Information about the source and destination of the file such as its URL, folder, filename * @param sourceAuthentication Credentials for the request to the source * @param destinationItemId Id of item to receive copy of resource/metadata/thumbnail * @param destinationAuthentication Credentials for the request to the storage * @returns A promise which resolves to the result of the copy */ function copyMetadataIntoItem(fileInfo, sourceAuthentication, destinationItemId, destinationAuthentication) { return new Promise((resolve) => { (0, get_blob_1.getBlob)(fileInfo.url, sourceAuthentication).then((blob) => { if (blob.type !== "text/xml" && blob.type !== "application/xml") { resolve((0, createCopyResults_1.createCopyResults)(fileInfo, false)); // unable to get resource return; } (0, addMetadataFromBlob_1.addMetadataFromBlob)(blob, destinationItemId, destinationAuthentication).then(() => resolve((0, createCopyResults_1.createCopyResults)(fileInfo, true, true)), () => resolve((0, createCopyResults_1.createCopyResults)(fileInfo, true, false))); }, () => resolve((0, createCopyResults_1.createCopyResults)(fileInfo, false))); }); } exports.copyMetadataIntoItem = copyMetadataIntoItem; //# sourceMappingURL=copyMetadataIntoItem.js.map