improved a bunch of things

This commit is contained in:
Zoe
2023-01-12 00:12:10 -06:00
parent 21a9b11547
commit 3bad12c646
13 changed files with 252 additions and 102 deletions

View File

@@ -44,7 +44,8 @@ export default defineEventHandler(async (event) => {
server: {
select: {
id: true,
name: true
name: true,
participants: true
}
}
}

View File

@@ -113,14 +113,20 @@ export default defineEventHandler(async (event) => {
invites: {
select: {
id: true,
server: true,
expires: true,
expiryDate: true,
maxUses: true
maxUses: true,
server: {
select: {
id: true,
name: true,
participants: true
}
}
}
}
}
}) as IMessage
}) as unknown as IMessage
global.io.emit(`message-${channel.id}`, { message });

View File

@@ -17,47 +17,6 @@ export default defineEventHandler(async (event) => {
select: {
id: true,
username: true,
channels: {
select: {
id: true,
name: true,
messages: false,
DM: true,
dmParticipants: true
}
},
servers: {
select: {
id: true,
name: true,
channels: {
select: {
id: true,
DM: true,
name: true
}
},
participants: {
select: {
id: true,
username: true
}
},
roles: {
select: {
id: true,
name: true,
administrator: true,
owner: true,
users: {
select: {
id: true
}
}
}
}
},
},
}
}) as SafeUser | null;

View File

@@ -1,7 +1,7 @@
import bcryptjs from "bcryptjs";
import { v4 as uuidv4 } from "uuid";
import { PrismaClient } from '@prisma/client'
import { IUser } from "../../types";
import { IUser, SafeUser } from "../../types";
const prisma = new PrismaClient()
export default defineEventHandler(async (event) => {
@@ -14,11 +14,62 @@ export default defineEventHandler(async (event) => {
}
}
const user = await prisma.user.findFirst({
let user = await prisma.user.findFirst({
where: {
username: body.username
}
}) as IUser
},
select: {
id: true,
username: true,
passwordhash: true,
email: true,
channels: {
select: {
id: true,
name: true,
messages: false,
DM: true,
dmParticipants: true,
serverId: true
}
},
servers: {
select: {
id: true,
name: true,
channels: {
select: {
id: true,
DM: true,
name: true,
serverId: true
}
},
participants: {
select: {
id: true,
username: true
}
},
roles: {
select: {
id: true,
name: true,
administrator: true,
owner: true,
users: {
select: {
id: true
}
}
}
}
},
}
},
}) as unknown
const isCorrect = await bcryptjs.compare(body.password, user.passwordhash)
@@ -38,6 +89,8 @@ export default defineEventHandler(async (event) => {
}
})
user = user as SafeUser
return {
token,
userId: user.id,

View File

@@ -41,8 +41,57 @@ export default defineEventHandler(async (event) => {
username: body.username,
passwordhash,
email: body.email
}
}) as SafeUser
},
select: {
id: true,
username: true,
passwordhash: true,
email: true,
channels: {
select: {
id: true,
name: true,
messages: false,
DM: true,
dmParticipants: true,
serverId: true
}
},
servers: {
select: {
id: true,
name: true,
channels: {
select: {
id: true,
DM: true,
name: true,
serverId: true
}
},
participants: {
select: {
id: true,
username: true
}
},
roles: {
select: {
id: true,
name: true,
administrator: true,
owner: true,
users: {
select: {
id: true
}
}
}
}
},
}
},
}) as unknown
const token = uuidv4()

View File

@@ -0,0 +1,65 @@
import { PrismaClient } from '@prisma/client'
import { IServer, IUser } from '~/types'
const prisma = new PrismaClient()
export default defineEventHandler(async (event) => {
if (!event.context.user.authenticated) {
// event.node.res.statusCode = 401;
return {
message: "Unauthenticated"
}
}
const { servers, channels } = await prisma.user.findFirst({
where: {
id: event.context.user.id
},
select: {
channels: {
select: {
id: true,
name: true,
messages: false,
DM: true,
dmParticipants: true
}
},
servers: {
select: {
id: true,
name: true,
channels: {
select: {
id: true,
DM: true,
name: true
}
},
participants: {
select: {
id: true,
username: true
}
},
roles: {
select: {
id: true,
name: true,
administrator: true,
owner: true,
users: {
select: {
id: true
}
}
}
}
},
},
}
}) as IUser | null;
return {
servers, channels
}
})