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)
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'}
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'}
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)
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)
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'}
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'}
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'}
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'}
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)
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'}