Skip to content

Commit 753a933

Browse files
committed
refactor: tidy up API methods for UserController
1 parent b24f421 commit 753a933

File tree

2 files changed

+21
-35
lines changed

2 files changed

+21
-35
lines changed

server/src/user/user.controller.ts

Lines changed: 18 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@ import {
99
} from '@nestjs/common';
1010
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
1111
import { PageQueryDTO } from '@shared/validation/common/dto/PageQuery.dto';
12-
import { GetUser } from '@shared/validation/user/dto/GetUser.dto';
13-
import { UpdateUsernameDto } from '@shared/validation/user/dto/UpdateUsername.dto';
1412
import { UpdateUserProfileDto } from '@shared/validation/user/dto/UpdateUserProfile.dto';
13+
import { UserQuery } from '@shared/validation/user/dto/UserQuery.dto';
1514

1615
import { GetRequestToken, validateUser } from '@server/GetRequestUser';
1716

@@ -27,44 +26,29 @@ export class UserController {
2726
private readonly userService: UserService,
2827
) {}
2928

30-
@Get('/:username')
31-
async getUser(@Param('username') username: string) {
32-
return await this.userService.getUserByEmailOrId({ username: username });
33-
// TODO: this may call userService.getUserByUsername directly
34-
}
35-
36-
@Get('by-query')
37-
async getUserByQuery(@Query() query: GetUser) {
38-
return await this.userService.getUserByEmailOrId(query);
39-
}
40-
41-
@Get('paginated')
42-
async getUserPaginated(@Query() query: PageQueryDTO) {
43-
return await this.userService.getUserPaginated(query);
44-
}
45-
46-
@Get('me')
29+
@Get()
4730
@ApiTags('user')
48-
@ApiBearerAuth()
49-
@ApiOperation({ summary: 'Get the token owner data' })
50-
async getMe(@GetRequestToken() user: UserDocument | null) {
51-
user = validateUser(user);
52-
return await this.userService.getSelfUserData(user);
31+
@ApiOperation({ summary: 'Get user data' })
32+
async getUser(
33+
@Query() query: UserQuery,
34+
@GetRequestToken() user: UserDocument | null,
35+
) {
36+
if ('me' in query && query.me) {
37+
user = validateUser(user);
38+
return await this.userService.getSelfUserData(user);
39+
}
40+
41+
return await this.userService.getUserPaginated(query as PageQueryDTO);
5342
}
5443

55-
@Patch('username')
44+
@Get(':username')
5645
@ApiTags('user')
57-
@ApiBearerAuth()
58-
@ApiOperation({ summary: 'Update the username' })
59-
async updateUsername(
60-
@GetRequestToken() user: UserDocument | null,
61-
@Body() body: UpdateUsernameDto,
62-
) {
63-
user = validateUser(user);
64-
return await this.userService.updateUsername(user, body);
46+
@ApiOperation({ summary: 'Get user profile by username' })
47+
async getUserProfile(@Param('username') username: string) {
48+
return await this.userService.findByUsername(username);
6549
}
6650

67-
@Patch('profile')
51+
@Patch()
6852
@ApiTags('user')
6953
@ApiBearerAuth()
7054
@ApiOperation({ summary: 'Update the profile' })

web/src/modules/auth/features/auth.utils.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,11 @@ export const getUserData = async (): Promise<LoggedUserData | never> => {
4040
if (!token) throw new Error('No token found');
4141
if (!token.value) throw new Error('No token found');
4242

43+
let res;
44+
4345
try {
4446
// verify the token with the server
45-
const res = await axiosInstance.get('/user/me', {
47+
res = await axiosInstance.get('/user?me=true', {
4648
headers: {
4749
authorization: `Bearer ${token.value}`,
4850
},

0 commit comments

Comments
 (0)