Add ability to delete previously added constants
This commit is contained in:
parent
4c3e4c3d93
commit
799ece6aae
4 changed files with 27 additions and 13 deletions
|
@ -37,18 +37,20 @@ type VideoConstant = { [key in number | string]: string }
|
||||||
|
|
||||||
type UpdatedVideoConstant = {
|
type UpdatedVideoConstant = {
|
||||||
[name in AlterableVideoConstant]: {
|
[name in AlterableVideoConstant]: {
|
||||||
added: { key: number | string, label: string }[]
|
[ npmName: string]: {
|
||||||
deleted: { key: number | string, label: string }[]
|
added: { key: number | string, label: string }[]
|
||||||
|
deleted: { key: number | string, label: string }[]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class RegisterHelpers {
|
export class RegisterHelpers {
|
||||||
private readonly updatedVideoConstants: UpdatedVideoConstant = {
|
private readonly updatedVideoConstants: UpdatedVideoConstant = {
|
||||||
playlistPrivacy: { added: [], deleted: [] },
|
playlistPrivacy: { },
|
||||||
privacy: { added: [], deleted: [] },
|
privacy: { },
|
||||||
language: { added: [], deleted: [] },
|
language: { },
|
||||||
licence: { added: [], deleted: [] },
|
licence: { },
|
||||||
category: { added: [], deleted: [] }
|
category: { }
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly transcodingProfiles: {
|
private readonly transcodingProfiles: {
|
||||||
|
@ -377,7 +379,7 @@ export class RegisterHelpers {
|
||||||
const { npmName, type, obj, key } = parameters
|
const { npmName, type, obj, key } = parameters
|
||||||
|
|
||||||
if (!obj[key]) {
|
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
|
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]
|
delete obj[key]
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|
|
@ -11,8 +11,10 @@ async function register ({
|
||||||
}) {
|
}) {
|
||||||
videoLanguageManager.addLanguage('al_bhed', 'Al Bhed')
|
videoLanguageManager.addLanguage('al_bhed', 'Al Bhed')
|
||||||
videoLanguageManager.addLanguage('al_bhed2', 'Al Bhed 2')
|
videoLanguageManager.addLanguage('al_bhed2', 'Al Bhed 2')
|
||||||
|
videoLanguageManager.addLanguage('al_bhed3', 'Al Bhed 3')
|
||||||
videoLanguageManager.deleteLanguage('en')
|
videoLanguageManager.deleteLanguage('en')
|
||||||
videoLanguageManager.deleteLanguage('fr')
|
videoLanguageManager.deleteLanguage('fr')
|
||||||
|
videoLanguageManager.deleteLanguage('al_bhed3')
|
||||||
|
|
||||||
videoCategoryManager.addCategory(42, 'Best category')
|
videoCategoryManager.addCategory(42, 'Best category')
|
||||||
videoCategoryManager.addCategory(43, 'High best category')
|
videoCategoryManager.addCategory(43, 'High best category')
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "peertube-plugin-test-three",
|
"name": "peertube-plugin-test-video-constants",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "Plugin test 3",
|
"description": "Plugin test video constants",
|
||||||
"engine": {
|
"engine": {
|
||||||
"peertube": ">=1.3.0"
|
"peertube": ">=1.3.0"
|
||||||
},
|
},
|
|
@ -32,7 +32,7 @@ describe('Test plugin altering video constants', function () {
|
||||||
await installPlugin({
|
await installPlugin({
|
||||||
url: server.url,
|
url: server.url,
|
||||||
accessToken: server.accessToken,
|
accessToken: server.accessToken,
|
||||||
path: getPluginTestPath('-three')
|
path: getPluginTestPath('-video-constants')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -45,6 +45,7 @@ describe('Test plugin altering video constants', function () {
|
||||||
|
|
||||||
expect(languages['al_bhed']).to.equal('Al Bhed')
|
expect(languages['al_bhed']).to.equal('Al Bhed')
|
||||||
expect(languages['al_bhed2']).to.equal('Al Bhed 2')
|
expect(languages['al_bhed2']).to.equal('Al Bhed 2')
|
||||||
|
expect(languages['al_bhed3']).to.not.exist
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should have updated categories', async function () {
|
it('Should have updated categories', async function () {
|
||||||
|
@ -116,7 +117,7 @@ describe('Test plugin altering video constants', function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should uninstall the plugin and reset languages, categories, licences and privacies', async function () {
|
it('Should uninstall the plugin and reset languages, categories, licences and privacies', async function () {
|
||||||
await uninstallPlugin({ url: server.url, accessToken: server.accessToken, npmName: 'peertube-plugin-test-three' })
|
await uninstallPlugin({ url: server.url, accessToken: server.accessToken, npmName: 'peertube-plugin-test-video-constants' })
|
||||||
|
|
||||||
{
|
{
|
||||||
const res = await getVideoLanguages(server.url)
|
const res = await getVideoLanguages(server.url)
|
||||||
|
@ -127,6 +128,7 @@ describe('Test plugin altering video constants', function () {
|
||||||
|
|
||||||
expect(languages['al_bhed']).to.not.exist
|
expect(languages['al_bhed']).to.not.exist
|
||||||
expect(languages['al_bhed2']).to.not.exist
|
expect(languages['al_bhed2']).to.not.exist
|
||||||
|
expect(languages['al_bhed3']).to.not.exist
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue