示例#1
0
	def post(self, user_id):
		args = teamParser.parse_args()
		profileID = args['profileID']

		profile = Profile.objects(id=profileID).first()
		request = Request.objects(user=user_id,type='invite').only('requests_list').first()
		if request is None or profile is None:
			raise InvalidUsage('Request is illegal')

		team = profile.LOLTeam

		success = request.update(pull__requests_list=profile)
		if success is 0 or team is None or team.captain != profile:
			raise InvalidUsage('Request is illegal') 

		profile = Profile.objects(user=user_id).first()
		if profile.LOLTeam is not None:
			raise InvalidUsage('Already joined a team')
		try:
			assert len(team.members) < 6
			team.members.append(profile)
		except:
			raise InvalidUsage('Team is full', 403)
		profile.LOLTeam = team

		team.save()
		profile.save()

		rongcloudJoinGroup(profile.id,team.id,teamName)

		return team_serialize(team)
示例#2
0
    def post(self, user_id):
        """
        Accept the friend request
        Add the user into friend list
        Remove the request from friend request
        """
        args = friendsParser.parse_args()
        profile_id = args['profile_id']

        if profile_id is None:
            abort(400)

        success = Request.objects(user=user_id).only(
            'requests_list').update_one(pull__requests_list=profile_id)
        if success is 0:
            abort(400)

        success = Friend.objects(user=user_id).only(
            'friends_list').update_one(add_to_set__friends_list=profile_id)
        if success is 0:
            friends = Friend(user=user_id, friends_list=[profile_id])
            friends.save()

        return {'status': 'success', 'message':
                'The user has been added to your friend list'}
示例#3
0
    def post(self, user_id):
        """
        Add a specific user to friend list, and
        send a friend request to that user
        """
        args = friendsParser.parse_args()
        profile_id = args['profile_id']

        if profile_id is None:
            abort(400)

        friend_profile = Profile.objects(id=profile_id).only('user').first()
        if friend_profile is None:
            abort(400)

        # add the user to friend list
        success = Friend.objects(user=user_id).only(
            'friends_list').update_one(add_to_set__friends_list=profile_id)
        if success is 0:
            friends = Friend(user=user_id, friends_list=[profile_id])
            friends.save()

        # put the friend request to the user's request list
        user_profile = Profile.objects(user=user_id).only('id').first()
        success = Request.objects(user=friend_profile.user).update_one(
            add_to_set__requests_list=user_profile)
        if success is 0:
            friend_request = Request(
                user=friend_profile.user,
                type='friends', requests_list=[user_profile])
            friend_request.save()

        return {'status': 'success', 'message':
                'The user has been added to your friend list'}
示例#4
0
    def get(self, user_id):
        print user_id
        request =  Request.objects(user=user_id).only('requests_list').first()
        if request is None:
            return {}

        return requests_list_serialize(request.requests_list)  
示例#5
0
    def get(self, user_id):
        """
        Get a list of friend request
        """
        request = Request.objects(user=user_id).only('requests_list').first()
        if request is None:
            return {}

        return requests_list_serialize(request.requests_list)
示例#6
0
    def delete(self, user_id):
        args = friendsParser.parse_args()
        profile_id = args['profile_id']

        if profile_id is None:
            abort(400)

        success = Request.objects(user=user_id).only('requests_list').update_one(pull__requests_list=profile_id)
        if success is 0:
            abort(400)

        return {'status': 'success', 'message': 'The user has been delete from your friends requests list'}
示例#7
0
	def delete(self, user_id):
		args = teamParser.parse_args()
		profileID = args['profileID']

		request = Request.objects(user=user_id, type='join').only('requests_list').first()
		if request is None:
			raise InvalidUsage('Request does not exist')

		success = request.update(pull__requests_list=profileID)
		if success is 0:
			raise InvalidUsage('Request does not exist')

		return {'status' : 'success'}
示例#8
0
    def delete(self, user_id):
        """
        Decline the friend request
        Reomve the request from friend request
        """
        args = friendsParser.parse_args()
        profile_id = args['profile_id']

        if profile_id is None:
            abort(400)

        success = Request.objects(user=user_id).only(
            'requests_list').update_one(pull__requests_list=profile_id)
        if success is 0:
            abort(400)

        return {'status': 'success', 'message':
                'The user has been delete from your friends requests list'}
示例#9
0
	def post(self, user_id):
		args = teamParser.parse_args()
		profile = Profile.objects(user=user_id).first()
		if profile.LOLTeam is not None:
			raise InvalidUsage('Already joined a team')

		teamName = args['teamName']
		team = LOLTeam.objects(teamName=teamName).first()

		if team is None:
			raise InvalidUsage('Team not found',404)

		captain = team.captain
		request = Request.objects(user=captain.user,type='join').only('requests_list').first()
		if request is None:
			request = Request(user=captain.user,type='join')
			request.save()
		request.update(add_to_set__requests_list=profile)

		return {'status' : 'success'}
示例#10
0
	def post(self, user_id):
		args = teamParser.parse_args()
		profileID = args['profileID']

		request = Request.objects(user=user_id, type='join').only('requests_list').first()
		if request is None:
			raise InvalidUsage('Request does not exist')

		captain = Profile.objects(user=user_id).first()
		team = captain.LOLTeam
		if team is None:
			raise InvalidUsage('Request is illegal')

		if team.captain != captain:
			raise InvalidUsage('Unauthorized',401)
		# query the player u want to invite
		profile = Profile.objects(id=profileID).first()
		success = request.update(pull__requests_list=profile)
		if success is 0:
			raise InvalidUsage('Request not found')

		if profile is None:
			raise InvalidUsage('Member not found',404)
		if profile.LOLTeam is not None:
			raise InvalidUsage('The user already joined a team')
		try:
			assert len(team.members) < 6
			team.members.append(profile)
		except:
			raise InvalidUsage('Team is full',403)
		profile.LOLTeam = team
		team.save()
		profile.save()

		rongcloudJoinGroup(profile.id,team.id,teamName)

		return team_serialize(team)
示例#11
0
	def post(self, user_id):
		args = teamParser.parse_args()
		profileID = args['profileID']
		teamIntro = args['teamIntro']
	
		profile = Profile.objects(user=user_id).first()
		if profileID == profile.id:
			raise InvalidUsage('Cannot send request to yourself')

		team = profile.LOLTeam
		if profileID is None and teamIntro is not None:
			if team.captain is not profile:
				raise InvalidUsage('Unauthorized',401)
			team.teamIntro = teamIntro
			team.save()
			return {'status' : 'success'}
		# avoid illegal operation
		if team is None:
			abort(400)
		if team.captain != profile:
			raise InvalidUsage('Unauthorized',401)
		# query the player u want to invite
		profile = Profile.objects(id=profileID).first()
		if profile is None:
			raise InvalidUsage('Member not found',404)
		try:
			assert len(team.members) < 6
		except:
			raise InvalidUsage('Team is full',403)
		request = Request.objects(user=profile.user,type='invite').only('requests_list').first()
		if request is None:
			request = Request(user=profile.user,type='invite')
			request.save()
		request.update(add_to_set__requests_list=team.captain)

		return {'status' : 'success'}