From bcffb0f67761b8cc4e366f8dafd8a03563897cbc Mon Sep 17 00:00:00 2001 From: Thomas Kranitsas Date: Fri, 25 Nov 2022 10:52:57 +0200 Subject: [PATCH 1/3] do not overwrite metadata, instead extend the array --- src/services/ChallengeService.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index ab680cac..651febc4 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -1914,6 +1914,16 @@ async function update (currentUser, challengeId, data, isFull) { delete data.attachments delete data.terms + const finalMetadata = [...challenge.metadata || []] + _.each(data.metadata || [], (rec) => { + const existingMeta = _.findIndex(finalMetadata, m => m.name === rec.name) + if (existingMeta > -1) { + finalMetadata[existingMeta].value = rec.value + } else { + finalMetadata.push(rec) + } + }) + data.metdata = finalMetadata _.assign(challenge, data) if (!_.isUndefined(newAttachments)) { challenge.attachments = newAttachments From da7634a6cde664ea3d8fc66b14d9f0eb45e2e200 Mon Sep 17 00:00:00 2001 From: Thomas Kranitsas Date: Fri, 25 Nov 2022 12:35:52 +0200 Subject: [PATCH 2/3] fix typo --- src/services/ChallengeService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index 651febc4..b86fa3f7 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -1923,7 +1923,7 @@ async function update (currentUser, challengeId, data, isFull) { finalMetadata.push(rec) } }) - data.metdata = finalMetadata + data.metadata = finalMetadata _.assign(challenge, data) if (!_.isUndefined(newAttachments)) { challenge.attachments = newAttachments From 4adb972e33e2aa1476b1aea0835ff5d9a58d47cb Mon Sep 17 00:00:00 2001 From: Thomas Kranitsas Date: Mon, 28 Nov 2022 11:14:23 +0200 Subject: [PATCH 3/3] move metadata code --- src/services/ChallengeService.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index b86fa3f7..60a5489f 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -1695,6 +1695,16 @@ async function update (currentUser, challengeId, data, isFull) { data.updated = moment().utc() data.updatedBy = currentUser.handle || currentUser.sub + const finalMetadata = [...challenge.metadata || []] + _.each(data.metadata || [], (rec) => { + const existingMeta = _.findIndex(finalMetadata, m => m.name === rec.name) + if (existingMeta > -1) { + finalMetadata[existingMeta].value = rec.value + } else { + finalMetadata.push(rec) + } + }) + data.metadata = finalMetadata const updateDetails = {} const auditLogs = [] let phasesHaveBeenModified = false @@ -1914,16 +1924,6 @@ async function update (currentUser, challengeId, data, isFull) { delete data.attachments delete data.terms - const finalMetadata = [...challenge.metadata || []] - _.each(data.metadata || [], (rec) => { - const existingMeta = _.findIndex(finalMetadata, m => m.name === rec.name) - if (existingMeta > -1) { - finalMetadata[existingMeta].value = rec.value - } else { - finalMetadata.push(rec) - } - }) - data.metadata = finalMetadata _.assign(challenge, data) if (!_.isUndefined(newAttachments)) { challenge.attachments = newAttachments