55 Logger ,
66 NotFoundException ,
77} from '@nestjs/common' ;
8- import { v4 as uuidv4 } from 'uuid' ;
8+ import { v4 } from 'uuid' ;
99import { UserTokenData } from '../auth/dto/user.dto' ;
1010import { RoomService } from './services/room.service' ;
1111import { Room } from './domain/room.domain' ;
@@ -73,6 +73,7 @@ export class CallUseCase {
7373 name ?: string ;
7474 lastName ?: string ;
7575 anonymous ?: boolean ;
76+ anonymousId ?: string ;
7677 email ?: string ;
7778 } ,
7879 ) : Promise < JoinCallResponseDto > {
@@ -81,16 +82,25 @@ export class CallUseCase {
8182 throw new NotFoundException ( `Specified room not found` ) ;
8283 }
8384
84- const processedUserData = this . processUserData ( userData ) ;
85- const isOwner = processedUserData . userId === room . hostId ;
85+ const joiningUserData = {
86+ userId : userData ?. anonymous
87+ ? ( userData ?. anonymousId ?? v4 ( ) )
88+ : userData ?. userId ,
89+ name : userData ?. name ,
90+ lastName : userData ?. lastName ,
91+ anonymous : userData ?. anonymous || ! userData . userId ,
92+ email : userData ?. email ,
93+ } ;
94+
95+ const isOwner = joiningUserData . userId === room . hostId ;
8696
8797 if ( ! isOwner && room . isClosed ) {
8898 throw new ForbiddenException ( 'Room is closed' ) ;
8999 }
90100
91101 const roomUser = await this . roomService . addUserToRoom (
92102 roomId ,
93- processedUserData ,
103+ joiningUserData ,
94104 ) ;
95105
96106 // Generate token for the user
@@ -99,10 +109,10 @@ export class CallUseCase {
99109 roomId ,
100110 ! ! roomUser . anonymous ,
101111 isOwner ,
102- processedUserData ,
112+ joiningUserData ,
103113 ) ;
104114
105- if ( processedUserData . userId === room . hostId && room . isClosed ) {
115+ if ( joiningUserData . userId === room . hostId && room . isClosed ) {
106116 await this . roomService . openRoom ( roomId ) ;
107117 }
108118
@@ -114,39 +124,6 @@ export class CallUseCase {
114124 } ;
115125 }
116126
117- private processUserData ( userData : {
118- userId ?: string ;
119- name ?: string ;
120- lastName ?: string ;
121- anonymous ?: boolean ;
122- email ?: string ;
123- } ) : {
124- userId : string ;
125- name ?: string ;
126- lastName ?: string ;
127- anonymous : boolean ;
128- email ?: string ;
129- } {
130- const { userId, name, lastName, anonymous = false , email } = userData ;
131-
132- if ( anonymous || ! userId ) {
133- return {
134- userId : uuidv4 ( ) ,
135- name,
136- lastName,
137- anonymous : true ,
138- } ;
139- }
140-
141- return {
142- userId,
143- name,
144- lastName,
145- anonymous : false ,
146- email,
147- } ;
148- }
149-
150127 async leaveCall ( roomId : string , userId : string ) : Promise < void > {
151128 const room = await this . roomService . getRoomByRoomId ( roomId ) ;
152129
0 commit comments