fix(Servers API): sanitize for edge cases with roles that don't exist anymore

This commit is contained in:
41666 2020-02-08 00:54:52 -05:00
parent 428773e174
commit 18e7e7ceb2
No known key found for this signature in database
GPG key ID: BC51D07640DC10AF

View file

@ -122,12 +122,13 @@ module.exports = (R, $) => {
}
const currentRoles = gm.rolesList
const allRoles = await $.discord.getRoles(server)
const allowedRoles = await $.server.getAllowedRoles(server)
// current roles and allowed roles are an inclusive set.
// first, filter added and removed.
const sanitizedAdded = added.filter(role => allowedRoles.includes(role))
const sanitizedRemoved = removed.filter(role => allowedRoles.includes(role))
const sanitizedAdded = added.filter(role => allRoles.includes(role) && allowedRoles.includes(role))
const sanitizedRemoved = removed.filter(role => allRoles.includes(role) && allowedRoles.includes(role))
// filter currentRoles by what's been removed (down is faster than up)
let newRoles = currentRoles.filter(role => !sanitizedRemoved.includes(role))