9
9
} from '@nestjs/common' ;
10
10
import { ApiBearerAuth , ApiOperation , ApiTags } from '@nestjs/swagger' ;
11
11
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' ;
14
12
import { UpdateUserProfileDto } from '@shared/validation/user/dto/UpdateUserProfile.dto' ;
13
+ import { UserQuery } from '@shared/validation/user/dto/UserQuery.dto' ;
15
14
16
15
import { GetRequestToken , validateUser } from '@server/GetRequestUser' ;
17
16
@@ -27,44 +26,29 @@ export class UserController {
27
26
private readonly userService : UserService ,
28
27
) { }
29
28
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 ( )
47
30
@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 ) ;
53
42
}
54
43
55
- @Patch ( ' username')
44
+ @Get ( ': username')
56
45
@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 ) ;
65
49
}
66
50
67
- @Patch ( 'profile' )
51
+ @Patch ( )
68
52
@ApiTags ( 'user' )
69
53
@ApiBearerAuth ( )
70
54
@ApiOperation ( { summary : 'Update the profile' } )
0 commit comments