UNPKG

mcdev

Version:

Accenture Salesforce Marketing Cloud DevTools

91 lines (82 loc) 3.32 kB
'use strict'; import MetadataType from './MetadataType.js'; import { Util } from '../util/util.js'; /** * @typedef {import('../../types/mcdev.d.js').BuObject} BuObject * @typedef {import('../../types/mcdev.d.js').CodeExtract} CodeExtract * @typedef {import('../../types/mcdev.d.js').CodeExtractItem} CodeExtractItem * @typedef {import('../../types/mcdev.d.js').MetadataTypeItem} MetadataTypeItem * @typedef {import('../../types/mcdev.d.js').MetadataTypeItemDiff} MetadataTypeItemDiff * @typedef {import('../../types/mcdev.d.js').MetadataTypeItemObj} MetadataTypeItemObj * @typedef {import('../../types/mcdev.d.js').MetadataTypeMap} MetadataTypeMap * @typedef {import('../../types/mcdev.d.js').MetadataTypeMapObj} MetadataTypeMapObj * @typedef {import('../../types/mcdev.d.js').SoapRequestParams} SoapRequestParams * @typedef {import('../../types/mcdev.d.js').TemplateMap} TemplateMap */ /** * ImportFile MetadataType * * @augments MetadataType */ class FileLocation extends MetadataType { /** * Retrieves Metadata of FileLocation * Endpoint /automation/v1/ftplocations/ return all FileLocations * * @param {string} retrieveDir Directory where retrieved metadata directory will be saved * @param {void | string[]} [_] unused parameter * @param {void | string[]} [__] unused parameter * @param {string} [key] customer key of single item to retrieve * @returns {Promise.<MetadataTypeMapObj>} Promise */ static retrieve(retrieveDir, _, __, key) { return super.retrieveREST(retrieveDir, '/automation/v1/ftplocations/', null, key); } /** * Retrieves folder metadata into local filesystem. Also creates a uniquePath attribute for each folder. * * @returns {Promise.<MetadataTypeMapObj>} Promise */ static async retrieveForCache() { return super.retrieveREST(null, '/automation/v1/ftplocations/'); } /** * prepares a import definition for deployment * * @param {MetadataTypeItem} metadata a single importDef * @returns {Promise.<MetadataTypeItem>} Promise */ static async preDeployTasks(metadata) { if (metadata.c__locationType) { metadata.locationTypeId = this.definition.locationTypeMapping[metadata.c__locationType]; } return metadata; } /** * manages post retrieve steps * * @param {MetadataTypeItem} metadata a single item * @returns {MetadataTypeItem} parsed metadata */ static postRetrieveTasks(metadata) { if (metadata.locationTypeId) { try { metadata.c__locationType = Util.inverseGet( this.definition.locationTypeMapping, metadata.locationTypeId ); delete metadata.locationTypeId; } catch { Util.logger.info( 'Please report this new & unknown locationTypeId to the mcdev developer team via github: ' + metadata.locationTypeId ); } } return metadata; } } // Assign definition to static attributes import MetadataTypeDefinitions from '../MetadataTypeDefinitions.js'; FileLocation.definition = MetadataTypeDefinitions.fileLocation; export default FileLocation;