Beispiel #1
0
def teamRemove():
    data = request.get_json(silent=False)
    if ('currentID' not in data) or ('username' not in data) or ('teamName'
                                                                 not in data):
        return err.return_json_error(err.error.JSON_STRUCTURE_WRONG)
    else:
        user = chk.checkUser(s,
                             username=data['username'],
                             currentID=data['currentID'])
        if not user['error']:
            user = user['user']
            if user.rights > 100:
                team = s.query(
                    db.Team).filter(db.Team.name == data['teamName']).all()
                if team:
                    team = team[0]
                    teamuser = s.query(db.TeamUser).filter(
                        db.and_(db.TeamUser.team == team,
                                db.TeamUser.user == user)).all()
                    if teamuser:
                        teamuser = teamuser[0]
                        if teamuser.role >= 1000:
                            s.delete(team)
                            s.commit()
                            return jsonify(done=True)
                    return err.return_json_error(
                        err.error.TEAM_ROLE_WAS_TOO_LOW)
                else:
                    return err.return_json_error(err.error.TEAM_NOT_FOUND)
            else:
                return err.return_json_error(err.error.USER_NOT_PRIVILEGED)
        else:
            return user['return']
Beispiel #2
0
def teamGet():
    username = request.args.get('username', default='*', type=str)
    currentID = request.args.get('currentID', default='*', type=str)
    teamName = request.args.get('teamName', default='*', type=str)
    if username == '*' or currentID == '*' or teamName == '*':
        return err.return_json_error(err.error.JSON_STRUCTURE_WRONG)
    user = chk.checkUser(s, username, currentID=currentID)
    if not user['error']:
        user = user['user']
        team = s.query(db.Team).filter(db.Team.name == teamName).all()
        if team:
            team = team[0]
            isPartOfTeam = s.query(db.TeamUser).filter(
                db.and_(db.TeamUser.team == team,
                        db.TeamUser.user == user)).all()
            if isPartOfTeam:
                members = list()
                for teamuser in team.teamUser:
                    toAdd = {
                        # 'id': friend.id,
                        'name': teamuser.user.name,
                        'enrollTime': teamuser.enrollTime,
                        'role': teamuser.role
                    }
                    members.append(toAdd)
                return jsonify({"name": team.name, "members": members})
            else:
                return err.return_json_error(err.error.TEAM_ROLE_WAS_TOO_LOW)
        else:
            return err.return_json_error(err.error.TEAM_NOT_FOUND)
    else:
        return user['return']
    return err.return_json_error(err.error.JSON_STRUCTURE_WRONG)
Beispiel #3
0
def messageList():
    username = request.args.get('username', default='*', type=str)
    currentID = request.args.get('currentID', default='*', type=str)
    user = chk.checkUser(s, username=username, currentID=currentID)
    if not user['error']:
        user = user['user']
        messagesReceived = list()
        messagesSent = list()
        for message in user.messagesReceived:
            toAdd = {
                'id': message.id,
                'sender': message.sender.name,
                'receiver': message.receiver.name,
                'message': message.message,
                'sendTime': message.sentTime,
                'receiverRead': message.receiverRead
            }
            messagesReceived.append(toAdd)
            if not message.receiverRead:
                message.receiverRead = True
                s.commit()
        for message in user.messagesSent:
            toAdd = {
                'id': message.id,
                'sender': message.sender.name,
                'receiver': message.receiver.name,
                'message': message.message,
                'sendTime': message.sentTime,
                'receiverRead': message.receiverRead
            }
            messagesSent.append(toAdd)
        return jsonify({'received': messagesReceived, 'sent': messagesSent})
    return user['return']
Beispiel #4
0
def teamCreate():
    data = request.get_json(silent=False)
    if ('currentID' not in data) or ('username' not in data) or ('teamName'
                                                                 not in data):
        return err.return_json_error(err.error.JSON_STRUCTURE_WRONG)
    else:
        user = chk.checkUser(s,
                             username=data['username'],
                             currentID=data['currentID'])
        if not user['error']:
            user = user['user']
            if user.rights > 100:
                teamExist = s.query(
                    db.Team).filter(db.Team.name == data['teamName']).all()
                if teamExist:
                    return err.return_json_error(err.error.TEAM_ALREADY_EXISTS)
                team = db.Team(name=data['teamName'])
                teammember = db.TeamUser(user=user, team=team, role=1000)
                s.add(team)
                s.add(teammember)
                s.commit()
                return jsonify({
                    "name": team.name,
                    "members": [{
                        "name": user.name
                    }]
                })
            else:
                return err.return_json_error(err.error.USER_NOT_PRIVILEGED)
        else:
            return user['return']
Beispiel #5
0
def messageNew():
    data = request.get_json(silent=False)
    if ('currentID' not in data) or ('username' not in data) or (
            'message' not in data) or ('receiver' not in data):
        return err.return_json_error(err.error.JSON_STRUCTURE_WRONG)
    else:
        user = chk.checkUser(s,
                             username=data['username'],
                             currentID=data['currentID'])
        receiver = s.query(
            db.User).filter(db.User.name == data['receiver']).all()
        if not user['error']:
            user = user['user']
            if receiver:
                receiver = receiver[0]
                mess = db.Message(receiver=receiver,
                                  sender=user,
                                  message=data['message'])
                s.add(mess)
                s.commit()
                return jsonify({
                    'id': mess.id,
                    'sender': mess.sender.name,
                    'receiver': mess.receiver.name,
                    'message': mess.message,
                    'sendTime': mess.sentTime,
                    'receiverRead': mess.receiverRead
                })
            else:
                return err.return_json_error(
                    err.error.MESSAGE_RECEIVER_NOT_FOUND)
        else:
            return user['return']
Beispiel #6
0
def friendAccept():
    data = request.get_json(silent=False)
    if ('currentID' not in data) or ('username' not in data) or ('friendsname'
                                                                 not in data):
        return err.return_json_error(err.error.JSON_STRUCTURE_WRONG)
    else:
        user = chk.checkUser(s,
                             username=data['username'],
                             currentID=data['currentID'])
        friend = s.query(
            db.User).filter(db.User.name == data['friendsname']).all()
        if not user['error']:
            user = user['user']
            if friend:
                friend = friend[0]
                friendship = s.query(db.UserFriend).filter(
                    db.and_(db.UserFriend.user1 == friend,
                            db.UserFriend.user2 == user)).all()
                if friendship:
                    friendship[0].accepted = True
                    s.commit()
                    return jsonify(done=True)
                return err.return_json_error(err.error.FRIEND_NOT_FOUND)
            else:
                return err.return_json_error(err.error.FRIEND_NOT_FOUND)
        else:
            return user['return']
Beispiel #7
0
def friendList():
    username = request.args.get('username', default='*', type=str)
    currentID = request.args.get('currentID', default='*', type=str)
    user = chk.checkUser(s, username=username, currentID=currentID)
    if not user['error']:
        user = user['user']
        friends = list()
        for friend in user.friends1:
            toAdd = {
                #'id': friend.id,
                'name': friend.user2.name,
                'startTime': friend.startTime,
                'accepted': friend.accepted,
                'askedby': "user"
            }
            friends.append(toAdd)
        for friend in user.friends2:
            toAdd = {
                #'id': friend.id,
                'name': friend.user1.name,
                'startTime': friend.startTime,
                'accepted': friend.accepted,
                'askedby': "friend"
            }
            friends.append(toAdd)
        return jsonify(friends)
    return user['return']
Beispiel #8
0
def teamMemberAdd():
    data = request.get_json(silent=False)
    if ('currentID' not in data) or ('username' not in data) or (
            'teamName' not in data) or ('userNameToAdd'
                                        not in data) or ('userRoleToAdd'
                                                         not in data):
        return err.return_json_error(err.error.JSON_STRUCTURE_WRONG)
    else:
        user = chk.checkUser(s,
                             username=data['username'],
                             currentID=data['currentID'])
        if not user['error']:
            user = user['user']
            team = s.query(
                db.Team).filter(db.Team.name == data['teamName']).all()
            if team:
                team = team[0]
                teamuser = s.query(db.TeamUser).filter(
                    db.and_(db.TeamUser.team == team,
                            db.TeamUser.user == user)).all()
                if teamuser:
                    teamuser = teamuser[0]
                    if teamuser.role >= 100:
                        newuser = s.query(db.User).filter(
                            db.User.name == data['userNameToAdd'])
                        if newuser:
                            newuser = newuser[0]
                            teamnewuser = s.query(db.TeamUser).filter(
                                db.and_(db.TeamUser.team == team,
                                        db.TeamUser.user == newuser)).all()
                            if teamnewuser:
                                return err.return_json_error(
                                    err.error.TEAM_USER_EXISTS)
                            else:
                                teamnewuser = db.TeamUser(
                                    user=newuser,
                                    team=team,
                                    role=data['userRoleToAdd'])
                                s.add(teamnewuser)
                                s.commit()
                                return jsonify(done=True)
                        else:
                            return err.return_json_error(
                                err.error.USER_NAME_NOT_FOUND)
                    else:
                        return err.return_json_error(
                            err.error.TEAM_ROLE_WAS_TOO_LOW)
                else:
                    return err.return_json_error(
                        err.error.TEAM_ROLE_WAS_TOO_LOW)
            else:
                return err.return_json_error(err.error.TEAM_NOT_FOUND)
        else:
            return user['return']
Beispiel #9
0
def userRemove():
    data = request.get_json(silent=False)
    if ('currentID' not in data) or ('username' not in data):
        return err.return_json_error(err.error.JSON_STRUCTURE_WRONG)
    else:
        user = chk.checkUser(s,
                             username=data['username'],
                             currentID=data['currentID'])
        if not user['error']:
            user = user['user']
            s.delete(user)
            s.commit()
            return jsonify(done=True)
        else:
            return user['return']
Beispiel #10
0
def messageRemove():
    data = request.get_json(silent=False)
    if ('currentID' not in data) or ('username' not in data) or ('messageID'
                                                                 not in data):
        return err.return_json_error(err.error.JSON_STRUCTURE_WRONG)
    else:
        user = chk.checkUser(s,
                             username=data['username'],
                             currentID=data['currentID'])
        if not user['error']:
            user = user['user']
            mess = s.query(db.Message).filter(
                db.and_(db.Message.id == data['messageID'],
                        db.Message.receiver == user)).all()
            if mess:
                s.delete(mess[0])
                s.commit()
                return jsonify(done=True)
            return jsonify(done=False)
        else:
            return user['return']
Beispiel #11
0
def login():
    data = request.get_json(silent=False)
    if 'username' not in data:
        return err.return_json_error(err.error.JSON_STRUCTURE_WRONG)
    elif 'password' not in data:
        ret = s.query(db.User).filter(db.User.name == data['username']).one()
        if ret:
            return jsonify(salt=ret.salt)
        return err.return_json_error(err.error.USER_NAME_NOT_FOUND)
    else:
        ret = chk.checkUser(s,
                            username=data['username'],
                            password=data['password'])
        if not ret['error']:
            user = ret['user']
            return jsonify(
                #id=user.id,
                currentID=user.currentID,
                validUntilID=user.validUntilID,
                rights=user.rights)
        return ret['return']