mirror of
https://github.com/roleypoly/roleypoly-v1.git
synced 2025-04-24 19:59:12 +00:00
fix(Servers API): sanitize for edge cases with roles that don't exist anymore
This commit is contained in:
parent
428773e174
commit
18e7e7ceb2
1 changed files with 4 additions and 3 deletions
|
@ -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))
|
||||
|
|
Loading…
Add table
Reference in a new issue