26 lines
961 B
JavaScript
26 lines
961 B
JavaScript
import { ObjectId } from "mongodb";
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const { reason } = await readBody(event)
|
|
|
|
const currentUser = await getAuth(event)
|
|
const userId = event.context.params.id;
|
|
|
|
if (!reason) return createError({ statusCode: 400, statusMessage: 'Reason is vereist' })
|
|
if (!currentUser.role.admin) return createError({ statusCode: 403, statusMessage: 'Geen toegang om gebruiker te bannen' })
|
|
|
|
const usersColl = db.collection('users')
|
|
const user = usersColl.findOneAndUpdate({ _id: new ObjectId(userId)}, { $set: { banned: { reason: reason, date: new Date() } } })
|
|
|
|
if (!user.value) return createError({ statusCode: 500, statusMessage: 'Error tijdens het updaten van de gebruiker' })
|
|
|
|
await $fetch(config.discordHost + '/user/ban', {
|
|
method: 'POST',
|
|
body: { reason: reason, discordId: user.discord.id }
|
|
})
|
|
|
|
await sendRconCommand(`ban ${user.value.minecraft.uuid} ${reason}`)
|
|
|
|
return user
|
|
});
|