|
|
@@ -5,6 +5,8 @@ import { z } from '@hono/zod-openapi'
|
|
|
import { AppDataSource } from '../../../data-source'
|
|
|
import { ErrorSchema } from '../../../utils/errorHandler'
|
|
|
import { AuthContext } from '../../../types/context'
|
|
|
+import { UserSchema } from '@/server/modules/users/user.schema'
|
|
|
+import { parseWithAwait } from '@/server/utils/parseWithAwait'
|
|
|
|
|
|
const RegisterSchema = z.object({
|
|
|
username: z.string().min(3).openapi({
|
|
|
@@ -26,10 +28,7 @@ const TokenResponseSchema = z.object({
|
|
|
example: 'jwt.token.here',
|
|
|
description: 'JWT Token'
|
|
|
}),
|
|
|
- user: z.object({
|
|
|
- id: z.number(),
|
|
|
- username: z.string()
|
|
|
- })
|
|
|
+ user: UserSchema.omit({ password: true })
|
|
|
})
|
|
|
|
|
|
const userService = new UserService(AppDataSource)
|
|
|
@@ -71,6 +70,9 @@ const app = new OpenAPIHono<AuthContext>().openapi(registerRoute, async (c) => {
|
|
|
const { username, password, email } = c.req.valid('json')
|
|
|
const user = await userService.createUser({ username, password, email })
|
|
|
const token = authService.generateToken(user)
|
|
|
- return c.json({ token, user }, 201)
|
|
|
+ return c.json({
|
|
|
+ token,
|
|
|
+ user: await parseWithAwait(UserSchema, user)
|
|
|
+ }, 201)
|
|
|
})
|
|
|
export default app
|