1
- import { Body , Controller , Param , Patch , Post , Req , UseGuards } from '@nestjs/common' ;
1
+ import { Body , Controller , Get , Param , Patch , Post , Req , UseGuards } from '@nestjs/common' ;
2
2
import { ApiBearerAuth , ApiOperation , ApiParam , ApiTags } from '@nestjs/swagger' ;
3
3
import { Request } from 'express' ;
4
4
import { UserEntity } from 'src/entities/user.entity' ;
5
+ import { mapToSubscriptionUserDtos } from 'src/utils/serialize' ;
5
6
import { FirebaseAuthGuard } from '../firebase/firebase-auth.guard' ;
6
7
import { ControllerDecorator } from '../utils/controller.decorator' ;
7
8
import { CreateSubscriptionUserDto } from './dto/create-subscription-user.dto' ;
9
+ import { GetSubscriptionUserDto } from './dto/get-subscription-user.dto' ;
8
10
import { UpdateSubscriptionUserDto } from './dto/update-subscription-user.dto' ;
9
11
import { ISubscriptionUser } from './subscription-user.interface' ;
10
12
import { SubscriptionUserService } from './subscription-user.service' ;
@@ -15,6 +17,23 @@ import { SubscriptionUserService } from './subscription-user.service';
15
17
export class SubscriptionUserController {
16
18
constructor ( private readonly subscriptionUserService : SubscriptionUserService ) { }
17
19
20
+ @Get ( '/' )
21
+ @ApiBearerAuth ( 'access-token' )
22
+ @ApiOperation ( {
23
+ description : 'Returns all the subscriptions of the authenticated user.' ,
24
+ } )
25
+ @UseGuards ( FirebaseAuthGuard )
26
+ async getUserSubscriptions ( @Req ( ) req : Request ) : Promise < GetSubscriptionUserDto [ ] > {
27
+ const user = req [ 'userEntity' ] as UserEntity ;
28
+ const userId = user . id ;
29
+
30
+ const userSubscriptions = await this . subscriptionUserService . getSubscriptions ( userId ) ;
31
+
32
+ const subscriptionDtos = mapToSubscriptionUserDtos ( userSubscriptions ) ;
33
+
34
+ return subscriptionDtos ;
35
+ }
36
+
18
37
@Post ( '/whatsapp' )
19
38
@ApiBearerAuth ( 'access-token' )
20
39
@ApiOperation ( {
0 commit comments