def post(self): args = self.invite_parser.parse_args() team_unid = args['team_unid'] invitee_unid = args['invitee_unid'] invitee_email = args['invitee_email'] if not invitee_unid and not invitee_email: return {'status': 'false', 'message': 'Must invite by email or unid'}, 400 if invitee_unid: user = get_user(invitee_unid) else: user = User.fetch_user_by_email(invitee_email) if not user: return {'status': 'false', 'message': 'No user found'}, 404 team = get_team(team_unid) user_team_exist = UserTeam.get_user_team_by_user_and_team(invitee_unid, team.unid) if user_team_exist: return {'status': 'false', 'message': 'User already on that team'}, 400 invitation = TeamInvite(team_unid, invitee_unid) return {'status': 'true', 'message': 'Invitation sent successfully', 'invitation_unid': invitation.unid}, 201
def test_get_user_team(self): rand_string1 = datetime.datetime.now() rand_string2 = datetime.datetime.now() user_team = UserTeam(rand_string1, rand_string2, 1) found_user_team = UserTeam.get_user_team_by_user_and_team(rand_string1, rand_string2) self.assertIsNotNone(found_user_team) self.assertEqual(user_team.unid, found_user_team.unid)
def get(self, team_unid, user_unid): team = get_team(team_unid) user = get_user(user_unid) user_team = UserTeam.get_user_team_by_user_and_team(user_unid, team_unid) return { 'status': 'true', 'user_type': user_team.member_mappings.get(user_team.member_type, 'Participant'), }
def delete(self, team_unid, user_unid): team = get_team(team_unid) user = get_user(user_unid) user_team = UserTeam.get_user_team_by_user_and_team(user_unid, team_unid) if not user_team: return {'status': 'false', 'message': 'The given user is not on that team'}, 400 is_captain = user_team.member_type == 2 user_team.delete(soft=False) new_captain = None team.number_participants -= 1 if is_captain: new_captain = UserTeam.get_oldest_team_member(team_unid) if new_captain: new_captain.member_type = 2 team.team_captain = new_captain.unid return {}, 204