Пример #1
0
    def join_room(room_number, nickname, ip):
        """
        Register a new user\n
        Generates users id, computes it's secret token, saves it in database\n
        :param room_number:\n
        :param nickname: \n
        :param ip: \n
        :return: json{Status, [UserCookie]}
        """

        #do not allow blocked IP users join
        blocked_members = DBUtils.get_fields(room_number, ['blocked_members'])
        if blocked_members is not None:
            blocked_members = blocked_members[0]['blocked_members']
            ips = []
            for userId in blocked_members:
                ips.append(blocked_members[userId]['IP'])

            if ip in ips:
                return Response.responseFailure(
                    "Blocked from entering this party room")

        #get unique ID
        try:
            # print("pre user ID")
            userId = DBUtils.generateUniqueId(Purpose.USER, room_number)
            # print("after UserID has been assigned")
            result = userId
        except ValueError as error:
            return Response.responseFailure("Room does not exist")
        token = SecurityUtils.generateToken()

        user = {
            userId: {
                'nickname': nickname,
                'token': token,
                'IP': ip,
                'songs': {}
            },
        }

        #save in database
        result = DBUtils.add_member(room_number, user)

        if result:
            #generate user identifiers
            cookie = SecurityUtils.generateCookie(userId, token)
            return Response.responseSuccess({
                "UserCookie":
                cookie,
                "UserId":
                userId,
                "SpotifySearchToken":
                TokenModerator.get_client_credentials_token(),
                "YoutubeSearchToken":
                config.TOKEN_KEYS['YOUTUBE_DATA_API']
            })
        else:
            return Response.responseFailure("Failed to add new party member")
Пример #2
0
    def get_members(room_number):
        """
        Get the list of all party members\n
        :param room_number:\n
        :return: json{Status, users:{party_members_data}}
        """

        fields = ['users']

        users = DBUtils.get_fields(room_number, fields)
        result = False
        for u in users:
            result = u['users']

        if result is not False:
            return Response.responseSuccess(result)
        else:
            return Response.responseFailure("Failed to retrieve users list.")
Пример #3
0
    def get_blocked_members(room_number):
        """
        Get the list of blocked party members\n
        :param room_number:\n
        :return: json{Status, 'blocked_members':{}}
        """

        fields = ['blocked_members']

        users = DBUtils.get_fields(room_number, fields)
        result = False
        for u in users:
            result = u['blocked_members']
            break

        if result is not False:
            return Response.responseSuccess(result)
        else:
            return Response.responseFailure(
                "Failed to retrieve block members list.")