feat: admin tags (#1452)
This commit is contained in:
@@ -289,6 +289,46 @@ module.exports = {
|
||||
return graphHelper.generateError(err)
|
||||
}
|
||||
},
|
||||
/**
|
||||
* DELETE TAG
|
||||
*/
|
||||
async deleteTag (obj, args, context) {
|
||||
try {
|
||||
const tagToDel = await WIKI.models.tags.query().findById(args.id)
|
||||
if (tagToDel) {
|
||||
await tagToDel.$relatedQuery('pages').unrelate()
|
||||
await WIKI.models.tags.query().deleteById(args.id)
|
||||
} else {
|
||||
throw new Error('This tag does not exist.')
|
||||
}
|
||||
return {
|
||||
responseResult: graphHelper.generateSuccess('Tag has been deleted.')
|
||||
}
|
||||
} catch (err) {
|
||||
return graphHelper.generateError(err)
|
||||
}
|
||||
},
|
||||
/**
|
||||
* UPDATE TAG
|
||||
*/
|
||||
async updateTag (obj, args, context) {
|
||||
try {
|
||||
const affectedRows = await WIKI.models.tags.query()
|
||||
.findById(args.id)
|
||||
.patch({
|
||||
tag: args.tag,
|
||||
title: args.title
|
||||
})
|
||||
if (affectedRows < 1) {
|
||||
throw new Error('This tag does not exist.')
|
||||
}
|
||||
return {
|
||||
responseResult: graphHelper.generateSuccess('Tag has been updated successfully.')
|
||||
}
|
||||
} catch (err) {
|
||||
return graphHelper.generateError(err)
|
||||
}
|
||||
},
|
||||
/**
|
||||
* FLUSH PAGE CACHE
|
||||
*/
|
||||
|
@@ -372,6 +372,10 @@ module.exports = {
|
||||
async usersTotal () {
|
||||
const total = await WIKI.models.users.query().count('* as total').first()
|
||||
return _.toSafeInteger(total.total)
|
||||
},
|
||||
async tagsTotal () {
|
||||
const total = await WIKI.models.tags.query().count('* as total').first()
|
||||
return _.toSafeInteger(total.total)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -102,6 +102,16 @@ type PageMutation {
|
||||
id: Int!
|
||||
): DefaultResponse @auth(requires: ["delete:pages", "manage:system"])
|
||||
|
||||
deleteTag(
|
||||
id: Int!
|
||||
): DefaultResponse @auth(requires: ["manage:system"])
|
||||
|
||||
updateTag(
|
||||
id: Int!
|
||||
tag: String!
|
||||
title: String!
|
||||
): DefaultResponse @auth(requires: ["manage:system"])
|
||||
|
||||
flushCache: DefaultResponse @auth(requires: ["manage:system"])
|
||||
|
||||
migrateToLocale(
|
||||
|
@@ -86,6 +86,7 @@ type SystemInfo {
|
||||
sslProvider: String @auth(requires: ["manage:system"])
|
||||
sslStatus: String @auth(requires: ["manage:system"])
|
||||
sslSubscriberEmail: String @auth(requires: ["manage:system"])
|
||||
tagsTotal: Int @auth(requires: ["manage:system", "manage:navigation", "manage:pages", "delete:pages"])
|
||||
telemetry: Boolean @auth(requires: ["manage:system"])
|
||||
telemetryClientId: String @auth(requires: ["manage:system"])
|
||||
upgradeCapable: Boolean @auth(requires: ["manage:system"])
|
||||
|
Reference in New Issue
Block a user