From 799ece6aae8ef55b50b6193de3c4d46e7bb258f5 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 15 Jun 2021 15:18:11 +0200 Subject: Add ability to delete previously added constants --- server/lib/plugins/register-helpers.ts | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'server/lib') diff --git a/server/lib/plugins/register-helpers.ts b/server/lib/plugins/register-helpers.ts index f5b573370..09275f9ba 100644 --- a/server/lib/plugins/register-helpers.ts +++ b/server/lib/plugins/register-helpers.ts @@ -37,18 +37,20 @@ type VideoConstant = { [key in number | string]: string } type UpdatedVideoConstant = { [name in AlterableVideoConstant]: { - added: { key: number | string, label: string }[] - deleted: { key: number | string, label: string }[] + [ npmName: string]: { + added: { key: number | string, label: string }[] + deleted: { key: number | string, label: string }[] + } } } export class RegisterHelpers { private readonly updatedVideoConstants: UpdatedVideoConstant = { - playlistPrivacy: { added: [], deleted: [] }, - privacy: { added: [], deleted: [] }, - language: { added: [], deleted: [] }, - licence: { added: [], deleted: [] }, - category: { added: [], deleted: [] } + playlistPrivacy: { }, + privacy: { }, + language: { }, + licence: { }, + category: { } } private readonly transcodingProfiles: { @@ -377,7 +379,7 @@ export class RegisterHelpers { const { npmName, type, obj, key } = parameters if (!obj[key]) { - logger.warn('Cannot delete %s %s by plugin %s: key does not exist.', type, npmName, key) + logger.warn('Cannot delete %s by plugin %s: key %s does not exist.', type, npmName, key) return false } @@ -388,7 +390,15 @@ export class RegisterHelpers { } } - this.updatedVideoConstants[type][npmName].deleted.push({ key, label: obj[key] }) + const updatedConstants = this.updatedVideoConstants[type][npmName] + + const alreadyAdded = updatedConstants.added.find(a => a.key === key) + if (alreadyAdded) { + updatedConstants.added.filter(a => a.key !== key) + } else if (obj[key]) { + updatedConstants.deleted.push({ key, label: obj[key] }) + } + delete obj[key] return true -- cgit v1.2.3