Compare commits

..

4 Commits

Author SHA1 Message Date
fabc504e06 feat: Added get all teams
All checks were successful
Build and Deploy / Deploy Web (push) Successful in 1m3s
Build and Deploy / Deploy Discord Bot (push) Successful in 48s
2023-06-07 22:32:34 +02:00
ea405ba6d5 fix: removed dark mod 2023-06-07 22:29:57 +02:00
d1f08e3dfa feat: Added team joining 2023-06-07 22:29:18 +02:00
70b0b86a23 feat: Added team invite creation 2023-06-06 22:28:26 +02:00
7 changed files with 57 additions and 3 deletions

View File

@@ -1,5 +1,5 @@
<template>
<div class="min-h-screen w-full overflow-y-auto bg-gray-100 dark:bg-gray-900">
<div class="min-h-screen w-full overflow-y-auto bg-gray-900">
<NuxtLayout />
</div>
</template>

View File

@@ -3,6 +3,11 @@ export default defineEventHandler(async (event) => {
if (teamId === '@current') {
const user = await getUser('@me', event)
if (!user.team) {
throw createError({ statusCode: 400, statusMessage: 'User must be in a team' })
}
teamId = user.team._id.toString()
}

View File

@@ -0,0 +1,27 @@
export default defineEventHandler(async (event) => {
const { userId } = await readBody(event)
const teamId: string = event.context.params ? event.context.params.id : '@current'
if (teamId === '@current') {
throw createError({ statusCode: 400, statusMessage: 'Cannot join your own team' })
}
const user = await getUser(userId, event)
if (user.team) {
throw createError({ statusCode: 400, statusMessage: 'User already is in a team' })
}
const team = await TeamModel.findById(teamId).populate('members')
if (!team) {
throw createError({ statusCode: 500, statusMessage: 'Team does not exist' })
}
team.members.push(userId)
user.team = team._id
team.save()
return team
})

View File

@@ -0,0 +1,3 @@
export default defineEventHandler(async () => {
return await TeamModel.find()
})

View File

@@ -0,0 +1,19 @@
export default defineEventHandler(async (event) => {
const { teamId } = await readBody(event)
const userId: string = event.context.params ? event.context.params.id : '@me'
if (userId === '@me') {
throw createError({ statusCode: 400, statusMessage: 'Cannot invite current user to a team' })
}
const user = await getUser(userId, event)
const { teamInvites } = await UserModel.findByIdAndUpdate(user._id, {
$addToSet: {
teamInvites: teamId
}
}) ?? { teamInvites: [] }
return teamInvites
})

View File

@@ -18,7 +18,7 @@ const userSchema = new Schema({
teamAdmin: Boolean
},
teamInvites: [
Types.ObjectId
{ type: Types.ObjectId, ref: 'Team' }
]
})

View File

@@ -16,7 +16,7 @@ declare global {
uuid: string,
username: string
},
teamInvites: string[],
teamInvites: Types.ObjectId[],
role: {
admin: boolean,
moderator: boolean,