Lots of improvements and changes
Some checks failed
Build and Deploy / Deploy Web (push) Has been cancelled
Build and Deploy / Deploy Discord Bot (push) Has been cancelled

This commit is contained in:
2023-05-27 12:02:33 +02:00
parent 98d73ea593
commit 8121b9b975
21 changed files with 3147 additions and 1599 deletions

View File

@@ -0,0 +1,13 @@
export default defineEventHandler(async (event) => {
const user = await getAuth(event)
if (!user.role.moderator) return createError({ statusCode: 403, statusMessage: 'Gebruiker heeft geen toegang tot alle gebruikers' })
const usersColl = db.collection('users');
const cursor = usersColl.find()
const users = await cursor.toArray()
return users
});

View File

@@ -37,7 +37,7 @@ export default defineEventHandler(async (event) => {
},
}
await coll.updateOne({ 'discord.id': userResult.id }, { $set: doc, $setOnInsert: { minecraft: { uuid: null, username: null }, teamInvites: [] } }, { upsert: true })
await coll.updateOne({ 'discord.id': userResult.id }, { $set: doc, $setOnInsert: { minecraft: { uuid: null, username: null }, teamInvites: [], role: {} } }, { upsert: true })
const token = createToken(tokenResponseData.access_token, tokenResponseData.refresh_token, tokenResponseData.expires_in, userResult.id )

View File

@@ -0,0 +1,25 @@
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
});

View File

@@ -1,5 +1,3 @@
import { applyUsername } from "~/server/utils/auth";
export default defineEventHandler(async (event) => {
const user = await getAuth(event)

View File

@@ -0,0 +1,17 @@
import { ObjectId } from "mongodb";
export default defineEventHandler(async (event) => {
const { id } = await readBody(event)
const user = await getAuth(event)
const storesColl = db.collection('stores');
const result = await storesColl.deleteOne({ _id: new ObjectId(id) })
if (result.deletedCount === 1) {
return result
} else {
throw createError({ statusCode: 500, statusMessage: 'Error tijdens het verwijderen van de store' })
}
});

View File

@@ -0,0 +1,21 @@
export default defineEventHandler(async () => {
const storesColl = db.collection('stores');
const cursor = storesColl.aggregate([
{
$lookup:
{
from: "users",
localField: "ownerId",
foreignField: "_id",
as: "owner",
},
},
{
$unwind: "$owner",
},
])
return await cursor.toArray()
});

View File

@@ -0,0 +1,13 @@
import { ObjectId } from "mongodb";
export default defineEventHandler(async (event) => {
const { coords, name, items, id } = await readBody(event)
const user = await getAuth(event)
const storesColl = db.collection('stores');
const { value: store } = await storesColl.findOneAndUpdate({ _id: id ? new ObjectId(id) : new ObjectId() }, { $set: { coords: coords, name: name, items: items, ownerId: user._id, } }, { returnDocument: 'after', upsert: true })
return store
});