Skip to content

Commit

Permalink
#789: improve error handling
Browse files Browse the repository at this point in the history
JoernBerkefeld committed Mar 28, 2023
1 parent a279330 commit c53feed
Showing 4 changed files with 31 additions and 15 deletions.
12 changes: 8 additions & 4 deletions lib/metadataTypes/MetadataType.js
Original file line number Diff line number Diff line change
@@ -677,8 +677,12 @@ class MetadataType {
metadataEntry[this.definition.nameField]
} / ${metadataEntry[this.definition.nameField]}:`
);
for (const msg of parsedErrors) {
Util.logger.error(' • ' + msg);
if (parsedErrors.length) {
for (const msg of parsedErrors) {
Util.logger.error(' • ' + msg);
}
} else if (ex?.message) {
Util.logger.debug(ex.message);
}
return null;
}
@@ -1578,8 +1582,8 @@ class MetadataType {
* @returns {string[] | void} formatted Error Message
*/
static checkForErrors(ex) {
const errors = [];
if (ex?.response?.status >= 400 && ex?.response?.status < 600) {
const errors = [];
if (ex.response.data.errors) {
for (const errMsg of ex.response.data.errors) {
errors.push(
@@ -1605,8 +1609,8 @@ class MetadataType {
}
Util.logger.debug(JSON.stringify(ex.config));
Util.logger.debug(JSON.stringify(ex.response.data));
return errors;
}
return errors;
}

/**
26 changes: 18 additions & 8 deletions lib/metadataTypes/MobileMessage.js
Original file line number Diff line number Diff line change
@@ -343,17 +343,27 @@ class MobileMessage extends MetadataType {
*/
static async preDeployTasks(metadata, deployDir) {
// mobileCode
metadata.code = cache.getByKey('mobileCode', metadata.code.code);
const code = cache.getByKey('mobileCode', metadata.code.code);
if (!code) {
throw new Error(`mobileCode ${metadata.code.code} not found in cache`);
}
metadata.code = code;

// mobileKeyword
if (metadata.keyword?.keyword) {
metadata.keyword = cache.getByKey('mobilekeyword', metadata.keyword.keyword);
const keyword = cache.getByKey('mobileKeyword', metadata.keyword.keyword);
if (!keyword) {
throw new Error(`mobileKeyword ${metadata.keyword.keyword} not found in cache`);
}
metadata.keyword = keyword;
}
if (metadata.subscriptionKeyword?.keyword) {
metadata.subscriptionKeyword.keyword = cache.getByKey(
'mobilekeyword',
metadata.subscriptionKeyword.keyword
);
const keyword = cache.getByKey('mobileKeyword', metadata.subscriptionKeyword.keyword);
if (!keyword) {
throw new Error(`mobileKeyword ${metadata.keyword.keyword} not found in cache`);
}

metadata.subscriptionKeyword.keyword = keyword;
}

// campaign
@@ -403,9 +413,9 @@ class MobileMessage extends MetadataType {
metadataEntry[this.definition.keyField] = apiResponse.id;
Object.assign(apiResponse, result.metadata[apiResponse.id]);
// postRetrieveTasks will be run automatically on this via super.saveResult
} catch {
} catch (ex) {
throw new Error(
`Could not get details for new ${this.definition.type} ${apiResponse.id} from server`
`Could not get details for new ${this.definition.type} ${apiResponse.id} from server (${ex.message})`
);
}
}
3 changes: 1 addition & 2 deletions lib/metadataTypes/TransactionalMessage.js
Original file line number Diff line number Diff line change
@@ -13,8 +13,7 @@ class TransactionalMessage extends MetadataType {
// define this.subType as string here for intellisense; requires to be redefined in child class
static subType;
/**
* Retrieves Metadata of Mobile Keywords
* Endpoint /legacy/v1/beta/mobile/code/ return all Mobile Codes with all details.
* Retrieves Metadata
*
* @param {string} retrieveDir Directory where retrieved metadata directory will be saved
* @param {void} [_] unused parameter
5 changes: 4 additions & 1 deletion lib/metadataTypes/User.js
Original file line number Diff line number Diff line change
@@ -142,7 +142,10 @@ class User extends MetadataType {
// Locale
if (metadata.c__LocaleCode) {
// confirm it's a valid locale
cache.getByKey('_language', metadata.c__LocaleCode);
const test = cache.getByKey('_language', metadata.c__LocaleCode);
if (!test) {
throw new Error(`_language ${metadata.c__LocaleCode} not found in cache`);
}
metadata.Locale = { LocaleCode: metadata.c__LocaleCode };
delete metadata.c__LocaleCode;
}

0 comments on commit c53feed

Please sign in to comment.