mirror of
https://github.com/movie-web/backend.git
synced 2025-09-13 18:13:26 +00:00
add GET for users
This commit is contained in:
@@ -5,6 +5,7 @@ import { sessionsRouter } from '@/routes/sessions';
|
||||
import { userBookmarkRouter } from '@/routes/users/bookmark';
|
||||
import { userDeleteRouter } from '@/routes/users/delete';
|
||||
import { userEditRouter } from '@/routes/users/edit';
|
||||
import { userGetRouter } from '@/routes/users/get';
|
||||
import { userProgressRouter } from '@/routes/users/progress';
|
||||
import { userSessionsRouter } from '@/routes/users/sessions';
|
||||
import { userSettingsRouter } from '@/routes/users/settings';
|
||||
@@ -21,4 +22,5 @@ export async function setupRoutes(app: FastifyInstance) {
|
||||
await app.register(userProgressRouter.register);
|
||||
await app.register(userBookmarkRouter.register);
|
||||
await app.register(userSettingsRouter.register);
|
||||
await app.register(userGetRouter.register);
|
||||
}
|
||||
|
31
src/routes/users/get.ts
Normal file
31
src/routes/users/get.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { User, formatUser } from '@/db/models/User';
|
||||
import { StatusError } from '@/services/error';
|
||||
import { handle } from '@/services/handler';
|
||||
import { makeRouter } from '@/services/router';
|
||||
import { z } from 'zod';
|
||||
|
||||
export const userGetRouter = makeRouter((app) => {
|
||||
app.get(
|
||||
'/users/:uid',
|
||||
{
|
||||
schema: {
|
||||
params: z.object({
|
||||
uid: z.string(),
|
||||
}),
|
||||
},
|
||||
},
|
||||
handle(async ({ auth, params, em }) => {
|
||||
await auth.assert();
|
||||
let uid = params.uid;
|
||||
if (uid === '@me') uid = auth.user.id;
|
||||
|
||||
if (auth.user.id !== uid)
|
||||
throw new StatusError('Cannot access users other than yourself', 403);
|
||||
|
||||
const user = await em.findOne(User, { id: uid });
|
||||
if (!user) throw new StatusError('User does not exist', 404);
|
||||
|
||||
return formatUser(user);
|
||||
}),
|
||||
);
|
||||
});
|
Reference in New Issue
Block a user