refactor
All checks were successful
Deploy / deploy (push) Successful in 39s

This commit is contained in:
2025-12-26 01:08:44 +06:00
parent 2ac88f1010
commit 7ed23df3e9
4 changed files with 207 additions and 163 deletions

View File

@@ -1,6 +1,7 @@
import type { FastifyInstance } from 'fastify'
import { z } from 'zod'
import prisma from '../prisma/client.ts'
import { socketToClient } from '../utils/socket-to-client.ts'
export default function (fastify: FastifyInstance) {
fastify.get('/preferences', async (req, reply) => {
@@ -47,4 +48,50 @@ export default function (fastify: FastifyInstance) {
}
}
})
fastify.patch('/profile', async (req, reply) => {
if (!req.user) {
reply.code(401).send(false)
return
}
try {
const schema = z.object({
displayName: z.string().optional(),
})
const input = schema.parse(req.body)
const updatedUser = prisma.user.update({
where: { userId: req.user.id },
data: {
displayName: input.displayName,
},
})
const namespace = fastify.io.of('/webrtc')
const sockets = await namespace.fetchSockets()
const found = sockets.find(socket => socket.id === req.user!.id)
if (found) {
found.data.displayName = input.displayName
namespace.emit('clientChanged', found.id, socketToClient(found))
}
return updatedUser
}
catch (err) {
fastify.log.error(err)
reply.code(400)
if (err instanceof z.ZodError) {
reply.send({ error: z.prettifyError(err) })
}
else {
reply.send({ error: err.message })
}
}
})
}