Exemplo n.º 1
0
 def get_lobby_state(self, request):
     if not isinstance(request, GetLobbyStateRequest):
         return RpcError(message="Wrong message type, expecting GetLobbyStateRequest", error_code=1)         
    
     with db(session):
         userservice = UserServiceClient("tcp://*:5551")
         lobbyQuery = Lobby.query.filter(Lobby.lobby_id==request.lobbyId).first()
         if not lobbyQuery:
             return RpcError(message="Lobby does not exists", error_code=2)
         lobbyMembershipQuery = LobbyMembership.query.filter(LobbyMembership.lobby_id==request.lobbyId).all()
         lobbyOwner = userservice.get_user(GetUserRequest(userId=lobbyQuery.owner_id), timeout=5000)
         
         lobbymemb_list = []
         for member in lobbyMembershipQuery:
             userInLobby = userservice.get_user(GetUserRequest(userId=member.user_id), timeout=5000)
             lobbym = ProtoLobbyMembership(user=userInLobby.user, status=member.status) 
             lobbymemb_list.append(lobbym)
             print "the user", userInLobby.user.email
             print "status", member.status
         
         lobby_return = ProtoLobby(lobbyId=request.lobbyId, owner=lobbyOwner.user, lobbymembers=lobbymemb_list, gameType=lobbyQuery.game_type) # Create lobby
                 
         return GetLobbyStateResponse(lobby=lobby_return)