|
|
@@ -2,6 +2,7 @@ import { createRoute, OpenAPIHono } from '@hono/zod-openapi';
|
|
|
import { UserService } from '../modules/users/user.service';
|
|
|
import { z } from 'zod';
|
|
|
import { AuthContext , authMiddleware } from '../middleware/auth.middleware';
|
|
|
+import { ErrorSchema } from '../middleware/errorHandler';
|
|
|
|
|
|
const app = new OpenAPIHono<AuthContext>()
|
|
|
const userService = new UserService();
|
|
|
@@ -44,7 +45,14 @@ const createUserRoute = createRoute({
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- 400: { description: 'Invalid input' }
|
|
|
+ 400: {
|
|
|
+ content: {
|
|
|
+ 'application/json': {
|
|
|
+ schema: ErrorSchema
|
|
|
+ }
|
|
|
+ },
|
|
|
+ description: 'Invalid input'
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -83,7 +91,7 @@ const listUsersHandler = app.openapi(
|
|
|
};
|
|
|
})
|
|
|
|
|
|
- return c.json(usersOut);
|
|
|
+ return c.json(usersOut, 200);
|
|
|
}
|
|
|
);
|
|
|
|
|
|
@@ -106,7 +114,14 @@ const getUserRoute = createRoute({
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- 404: { description: 'User not found' }
|
|
|
+ 404: {
|
|
|
+ content: {
|
|
|
+ 'application/json': {
|
|
|
+ schema: ErrorSchema
|
|
|
+ }
|
|
|
+ },
|
|
|
+ description: 'User not found'
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -115,8 +130,13 @@ const getUserHandler = app.openapi(
|
|
|
async (c) => {
|
|
|
const { id } = c.req.valid('param');
|
|
|
const user = await userService.getUserById(parseInt(id));
|
|
|
- if (!user) return c.notFound();
|
|
|
- return c.json(user);
|
|
|
+ if (!user) return c.json({ code: 404, message: 'User not found' }, 404);
|
|
|
+ return c.json({
|
|
|
+ id: user.id,
|
|
|
+ username: user.username,
|
|
|
+ email: user.email,
|
|
|
+ createdAt: user.createdAt.toISOString()
|
|
|
+ }, 200);
|
|
|
}
|
|
|
);
|
|
|
|
|
|
@@ -157,7 +177,7 @@ const updateUserHandler = app.openapi(
|
|
|
const data = c.req.valid('json');
|
|
|
const user = await userService.updateUser(parseInt(id), data);
|
|
|
if (!user) return c.notFound();
|
|
|
- return c.json(user);
|
|
|
+ return c.json(user, 200);
|
|
|
}
|
|
|
);
|
|
|
|