Handleshake
This commit is contained in:
		
							parent
							
								
									2bee72f37d
								
							
						
					
					
						commit
						8966601f14
					
				| 
						 | 
				
			
			@ -361,6 +361,126 @@ addService(({
 | 
			
		|||
            }
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
        case 'accept/invite-room':{
 | 
			
		||||
            let {roomId, clientId} = message;
 | 
			
		||||
            // Odanın varlığının kontrolü
 | 
			
		||||
            if(!Room.rooms.has(roomId))
 | 
			
		||||
            {
 | 
			
		||||
                end({
 | 
			
		||||
                    status : "fail",
 | 
			
		||||
                    message : "NOT-FOUND-ROOM"
 | 
			
		||||
                })
 | 
			
		||||
            };
 | 
			
		||||
            let room = Room.rooms.get(roomId);
 | 
			
		||||
 | 
			
		||||
            // erişim kontrolü
 | 
			
		||||
            if(!client.rooms.has(room.id))
 | 
			
		||||
            {
 | 
			
		||||
                return end({
 | 
			
		||||
                    status : "fail",
 | 
			
		||||
                    message : "FORBIDDEN-INVITE-ACTIONS"
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Odaya katılma şeklinin doğruluğu
 | 
			
		||||
            if(room.joinType == 'invite')
 | 
			
		||||
            {
 | 
			
		||||
                return end({
 | 
			
		||||
                    status : "fail",
 | 
			
		||||
                    message : "INVALID-DATA"
 | 
			
		||||
                })
 | 
			
		||||
            };
 | 
			
		||||
            // Odaya katılma talebinin doğruluğu
 | 
			
		||||
            if(!room.waitingInvited.includes(clientId))
 | 
			
		||||
            {
 | 
			
		||||
                return end({
 | 
			
		||||
                    status : "fail",
 | 
			
		||||
                    message : "NO-WAITING-INVITED"
 | 
			
		||||
                })
 | 
			
		||||
            };
 | 
			
		||||
            // Odaya katılan kişinin varlığı
 | 
			
		||||
            if(!Client.clients.has(clientId))
 | 
			
		||||
            {
 | 
			
		||||
                return end({
 | 
			
		||||
                    status : "fail",
 | 
			
		||||
                    message : "NO-CLIENT"
 | 
			
		||||
                })
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            // Odaya kişiyi kabul etme
 | 
			
		||||
            let JoinClient = Client.clients.get(clientId)
 | 
			
		||||
 | 
			
		||||
            room.join(JoinClient);
 | 
			
		||||
 | 
			
		||||
            JoinClient.send([{
 | 
			
		||||
                status:"accepted"
 | 
			
		||||
            },'room/invite/status']);
 | 
			
		||||
 | 
			
		||||
            return end({
 | 
			
		||||
                status : "success"
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
        case 'reject/invite-room':{
 | 
			
		||||
            let {roomId, clientId} = message;
 | 
			
		||||
            // Odanın varlığının kontrolü
 | 
			
		||||
            if(!Room.rooms.has(roomId))
 | 
			
		||||
            {
 | 
			
		||||
                end({
 | 
			
		||||
                    status : "fail",
 | 
			
		||||
                    message : "NOT-FOUND-ROOM"
 | 
			
		||||
                })
 | 
			
		||||
            };
 | 
			
		||||
            let room = Room.rooms.get(roomId);
 | 
			
		||||
 | 
			
		||||
            // erişim kontrolü
 | 
			
		||||
            if(!client.rooms.has(room.id))
 | 
			
		||||
            {
 | 
			
		||||
                return end({
 | 
			
		||||
                    status : "fail",
 | 
			
		||||
                    message : "FORBIDDEN-INVITE-ACTIONS"
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Odaya katılma şeklinin doğruluğu
 | 
			
		||||
            if(room.joinType == 'invite')
 | 
			
		||||
            {
 | 
			
		||||
                return end({
 | 
			
		||||
                    status : "fail",
 | 
			
		||||
                    message : "INVALID-DATA"
 | 
			
		||||
                })
 | 
			
		||||
            };
 | 
			
		||||
            // Odaya katılma talebinin doğruluğu
 | 
			
		||||
            if(!room.waitingInvited.includes(clientId))
 | 
			
		||||
            {
 | 
			
		||||
                return end({
 | 
			
		||||
                    status : "fail",
 | 
			
		||||
                    message : "NO-WAITING-INVITED"
 | 
			
		||||
                })
 | 
			
		||||
            };
 | 
			
		||||
            // Odaya katılan kişinin varlığı
 | 
			
		||||
            if(!Client.clients.has(clientId))
 | 
			
		||||
            {
 | 
			
		||||
                return end({
 | 
			
		||||
                    status : "fail",
 | 
			
		||||
                    message : "NO-CLIENT"
 | 
			
		||||
                })
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            // Odaya davet edilen kişiyi reddetme
 | 
			
		||||
            let JoinClient = Client.clients.get(clientId)
 | 
			
		||||
 | 
			
		||||
            room.waitingInvited = room.waitingInvited.filter(e => e != clientId);
 | 
			
		||||
 | 
			
		||||
            room.send([{id:clientId,roomId:room.id},'room/invite/status'])
 | 
			
		||||
 | 
			
		||||
            JoinClient.send([{
 | 
			
		||||
                status:"rejected"
 | 
			
		||||
            },'room/invite/status']);
 | 
			
		||||
 | 
			
		||||
            return end({
 | 
			
		||||
                status : "success"
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
        default:{
 | 
			
		||||
            next();
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue