Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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'),
        }
Exemplo n.º 3
0
    def post(self, team_unid):
        args = self.create_parser.parse_args()
        user_unid = args['user_unid']
        member_type = args['member_type']

        team = get_team(team_unid)
        
        user = get_user(user_unid)

        user_team = UserTeam.add_user_to_team(user_unid, team_unid, member_type)
        if user_team.member_type == 2:
            team.team_captain = user_team.user_unid
        team.number_participants += 1

        return {'status': 'true', 'user_team_unid': user_team.unid, 'team': team.serialize()}
Exemplo n.º 4
0
    def get(self):
        args = self.get_invites_parser.parse_args()
        user_unid = args['user_unid']
        team_unid = args['team_unid']
        
        if team_unid:
            team = get_team(team_unid)
            result = TeamInvite.get_by_team_unid(team_unid)
        else:
            result = TeamInvite.get_invites()

        if user_unid:
            user = get_user(user_unid)
            team_invites = result.filter_by(invite_user_unid=user_unid)
        else:
            team_invites = result
        
        invites_serialized = [invite.serialize() for invite in team_invites]
        return {
            'invites': invites_serialized
        }, 200
Exemplo n.º 5
0
    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