Skip to content

Commit

Permalink
#748: fully resolve asset-template content
Browse files Browse the repository at this point in the history
  • Loading branch information
JoernBerkefeld committed Feb 17, 2023
1 parent 2cc2900 commit d5fcec5
Showing 1 changed file with 91 additions and 14 deletions.
105 changes: 91 additions & 14 deletions lib/metadataTypes/Asset.js
Original file line number Diff line number Diff line change
Expand Up @@ -859,6 +859,61 @@ class Asset extends MetadataType {
}
break;
}
case 'template': {
// template-template
// this complex type always creates its own subdir per asset
subDirArr = [this.definition.type, subType];
readDirArr = [deployDir, ...subDirArr, templateName || customerKey];

const fileExtArr = ['html']; // eslint-disable-line no-case-declarations
for (const ext of fileExtArr) {
if (
await File.pathExists(
File.normalizePath([
...readDirArr,
`${templateName || customerKey}${subtypeExtension}.${ext}`,
])
)
) {
// the main content can be empty (=not set up yet) hence check if we did extract sth or else readFile() will print error msgs
if (!fileListOnly) {
metadata.content = await File.readFilteredFilename(
readDirArr,
(templateName || customerKey) + subtypeExtension,
ext
);
}
if (templateName) {
// to use this method in templating, store a copy of the info in fileList
fileList.push({
subFolder: subDirArr,
fileName: (templateName || customerKey) + subtypeExtension,
fileExt: ext,
content: metadata.content,
});
}
// break loop when found
break;
}
}

// metadata.slots.<>.blocks.<>.content (optional)
if (metadata?.slots) {
await this._mergeCode_slots(
'slots',
metadata.slots,
readDirArr,
subtypeExtension,
subDirArr,
fileList,
customerKey,
templateName,
fileListOnly
);
}

break;
}
case 'textonlyemail': {
// message
// metadata.views.text.content
Expand Down Expand Up @@ -970,7 +1025,6 @@ class Asset extends MetadataType {

break;
}
case 'template': // template-template
case 'buttonblock': // block - Button Block
case 'freeformblock': // block
case 'htmlblock': // block
Expand Down Expand Up @@ -1117,9 +1171,9 @@ class Asset extends MetadataType {
// unfortunately, asset's key can contain spaces at beginning/end which can break the file system when folders are created with it
const customerKey = metadata.customerKey.trim();
switch (metadata.assetType.name) {
case 'templatebasedemail': // message
case 'templatebasedemail': // message-templatebasedemail
case 'htmlemail': {
// message
// message-htmlemail
// metadata.views.html.content (mandatory)
if (metadata.views?.html?.content?.length) {
codeArr.push({
Expand All @@ -1142,8 +1196,32 @@ class Asset extends MetadataType {
subFolder: [customerKey],
};
}
case 'template': {
// template-template
// metadata.content
const fileExt = 'html'; // eslint-disable-line no-case-declarations
if (metadata?.content?.length) {
codeArr.push({
subFolder: null,
fileName: customerKey,
fileExt: fileExt,
content: metadata.content,
});
delete metadata.content;
}
// metadata.slots.<>.blocks.<>.content (optional)
if (metadata.slots) {
this._extractCode_slots('slots', metadata.slots, codeArr);
}

return {
json: metadata,
codeArr: codeArr,
subFolder: [customerKey],
};
}
case 'textonlyemail': {
// message
// message-textonlyemail
// metadata.views.text.content
if (metadata.views?.text?.content?.length) {
codeArr.push({
Expand All @@ -1157,7 +1235,7 @@ class Asset extends MetadataType {
return { json: metadata, codeArr: codeArr, subFolder: null };
}
case 'webpage': {
// asset
// asset-webpage
// metadata.views.html.content (pre & post 20222)
if (metadata.views?.html?.content?.length) {
codeArr.push({
Expand Down Expand Up @@ -1192,16 +1270,15 @@ class Asset extends MetadataType {
subFolder: [customerKey],
};
}
case 'template': // template-template
case 'buttonblock': // block - Button Block
case 'freeformblock': // block
case 'htmlblock': // block
case 'icemailformblock': // block - Interactive Content Email Form
case 'imageblock': // block - Image Block
case 'textblock': // block
case 'smartcaptureblock': // other
case 'buttonblock': // block-buttonblock
case 'freeformblock': // block-freeformblock
case 'htmlblock': // block-htmlblock
case 'icemailformblock': // block-icemailformblock - Interactive Content Email Form
case 'imageblock': // block-imageblock - Image Block
case 'textblock': // block-textblock
case 'smartcaptureblock': // other-smartcaptureblock
case 'codesnippetblock': {
// other
// other-codesnippetblock
// metadata.content
let fileExt = 'html'; // eslint-disable-line no-case-declarations
if (
Expand Down

0 comments on commit d5fcec5

Please sign in to comment.