Example #1
0
def create_user(event, context):

    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    helper.log_method_initiated("Create user from cognito", event, logger)

    with Session() as session:

        if event['triggerSource'] == "PostConfirmation_ConfirmSignUp":
            user = User()
            user.name = event['userName']
            user.id = event['request']['userAttributes']['sub']
            if user.id == None or user.name == None:
                raise Exception("Something went wrong!")
            user = user_handler.create_user(user, session)
            client = boto3.client('cognito-idp')
            client.admin_add_user_to_group(UserPoolId=event['userPoolId'],
                                           Username=user.name,
                                           GroupName='Detective')

        return event
Example #2
0
def create_levels_junior_and_senior_detectives(session):
    """
    This method can be used to setup a testing scenario.
    It adds the following objects to a session:
    - 3 levels requiring 0, 5 and 10 experience points
    - 4 detectives with level 1 and ids 1 - 4
    - 4 detectives with level 2 and ids 11 - 14
    """

    # Create three levels

    level1 = create_level(1, "Junior", 0)
    level2 = create_level(2, "Senior", 5)
    level3 = create_level(3, "Master", 10)

    session.add(level1)
    session.add(level2)
    session.add(level3)

    # Create 5 level-1-detectives
    junior_detective1 = User()
    junior_detective1.id = "1"
    junior_detective1.name = "Junior1"
    user_handler.create_user(junior_detective1, session)

    junior_detective2 = User()
    junior_detective2.id = "2"
    junior_detective2.name = "Junior2"
    user_handler.create_user(junior_detective2, session)

    junior_detective3 = User()
    junior_detective3.id = "3"
    junior_detective3.name = "Junior3"
    user_handler.create_user(junior_detective3, session)

    junior_detective4 = User()
    junior_detective4.id = "4"
    junior_detective4.name = "Junior4"
    user_handler.create_user(junior_detective4, session)

    junior_detective5 = User()
    junior_detective5.id = "5"
    junior_detective5.name = "Junior5"
    user_handler.create_user(junior_detective5, session)

    # Create 5 level-2-detectives
    senior_detective1 = User()
    senior_detective1.id = "11"
    senior_detective1.name = "Senior1"
    senior_detective1 = user_handler.create_user(senior_detective1, session)
    senior_detective1.level_id = 2
    senior_detective1.experience_points = 5

    senior_detective2 = User()
    senior_detective2.id = "12"
    senior_detective2.name = "Senior2"
    senior_detective2 = user_handler.create_user(senior_detective2, session)
    senior_detective2.level_id = 2
    senior_detective2.experience_points = 5

    senior_detective3 = User()
    senior_detective3.id = "13"
    senior_detective3.name = "Senior3"
    senior_detective3 = user_handler.create_user(senior_detective3, session)
    senior_detective3.level_id = 2
    senior_detective3.experience_points = 5

    senior_detective4 = User()
    senior_detective4.id = "14"
    senior_detective4.name = "Senior4"
    senior_detective4 = user_handler.create_user(senior_detective4, session)
    senior_detective4.level_id = 2
    senior_detective4.experience_points = 5

    senior_detective5 = User()
    senior_detective5.id = "15"
    senior_detective5.name = "Senior5"
    senior_detective5 = user_handler.create_user(senior_detective5, session)
    senior_detective5.level_id = 2
    senior_detective5.experience_points = 5

    session.merge(senior_detective1)
    session.merge(senior_detective2)
    session.merge(senior_detective3)
    session.merge(senior_detective4)
    session.merge(senior_detective5)
    session.commit()

    return session
Example #3
0
def create_users_for_ranking(session):
    """ 
    Creates My Detective looking up ranking and his own position
    3 different Levels (Junior, Senior, Master)
    20 Users on Junior Level, 20 Users on Senior Level, 20 Users on Master Level
    """

    levels_to_create = [{
        'id': 1,
        'description': 'Junior',
        'required_experience_points': 0
    }, {
        'id': 2,
        'description': 'Senior',
        'required_experience_points': 20
    }, {
        'id': 3,
        'description': 'Master',
        'required_experience_points': 40
    }]

    level1_id = levels_to_create[0]['id']
    level2_id = levels_to_create[1]['id']
    level3_id = levels_to_create[2]['id']

    for level in levels_to_create:
        new_level = session.query(Level).get(level['id'])
        if new_level is None:
            new_level = create_level(level['id'], level['description'],
                                     level['required_experience_points'])
            session.add(new_level)

    my_detective = User()
    my_detective.id = "999"
    my_detective.name = "MyDetektiv"
    user_handler.create_user(my_detective, session)
    my_detective.level_id = 2
    my_detective.experience_points = 35
    my_detective.sign_up_timestamp = datetime.today()
    users_to_create = []

    # the last created will be 60
    for i in range(1, 21):
        junior_user = User()
        junior_user.id = str(i)
        junior_user = user_handler.create_user(junior_user, session)
        junior_user.name = "JuniorUser" + str(i)
        junior_user.level_id = level1_id
        junior_user.experience_points = i
        junior_user.sign_up_timestamp = datetime.today() - timedelta(days=i)
        users_to_create.append(junior_user)
    for i in range(21, 41):
        senior_user = User()
        senior_user.id = str(i)
        senior_user = user_handler.create_user(senior_user, session)
        senior_user.name = "SeniorUser" + str(i)
        senior_user.level_id = level2_id
        senior_user.experience_points = i
        senior_user.sign_up_timestamp = datetime.today() - timedelta(days=i)
        users_to_create.append(senior_user)
    for i in range(41, 61):
        master_user = User()
        master_user.id = str(i)
        master_user = user_handler.create_user(master_user, session)
        master_user.name = "MasterUser" + str(i)
        master_user.level_id = level3_id
        master_user.experience_points = i
        master_user.sign_up_timestamp = datetime.today() - timedelta(days=i)
        users_to_create.append(master_user)

    session.add_all(users_to_create)
    session.commit()

    return session