Example #1
0
def standup_start(token, channel_id, length):
    global end_time

    sender = get_user_from_token(token)
    sender_uid = sender.get_uid()
    try:
        curr_channel = get_verified_channel_from_id(channel_id,
                                                    get_channel_list())
    except:
        raise ValueError("Channel ID is not a valid channel")

    if sender_uid in curr_channel.get_mem_list():
        if not curr_channel.get_active_standup():

            curr_channel.set_active_standup(True)
            start_time = datetime.now()
            t = Timer(length, standup_output_message, [token, channel_id], {})
            t.start()

            end_time = start_time + timedelta(seconds=length)
            return {'time_finish': int(end_time.timestamp())}
        else:
            raise ValueError("Standup is already running.")
    else:
        raise AccessError("Authorised user is not a member of the channel.")
Example #2
0
def test_login_corr():
    global my_users
    data_delete()
    user = auth_register("*****@*****.**", "password", "Student", "Citizen")
    userDict = auth_login("*****@*****.**", 'password')
    assert userDict['u_id'] == user['u_id']
    assert get_user_from_token(userDict['token']) == my_users[0]
Example #3
0
def search(token, quer_str):
    user = get_user_from_token(token)
    search_result = []
    search_list = []
    channels_dict = channels_list(token)
    for channel in channels_dict:
        search_list.append(channel['channel_id'])

    for channel_id in search_list:
        channel = get_verified_channel_from_id(channel_id, get_channel_list())
        for message in channel.get_mess():
            if quer_str in message.get_message_content():
                message_dict = {
                    'message_id': message.get_message_id(),
                    'u_id': message.get_user_id(),
                    'message': message.get_message_content(),
                    'time_created':
                    int(message.get_time_created().timestamp()),
                    'reacts': [],
                    'is_pinned': message.get_is_pinned()
                }
                message_dict['reacts'] = generate_reacts_dictionary(
                    user, message)
                search_result.append(message_dict)

    return {'messages': search_result}
Example #4
0
def append_message(channel_id, token, message_id, message, time_created):
    channel_messages = get_channel_messages(channel_id)
    user_id = get_user_from_token(token).get_uid()
    new_message = Message(message_id, user_id, message, time_created)
    channel_messages.append(new_message)

    return {"message_id": message_id}
Example #5
0
def standup_send(token, channel_id, message):
    global list_of_messages
    global end_time

    curr_user = get_user_from_token(token)

    try:
        curr_channel = get_verified_channel_from_id(channel_id,
                                                    get_channel_list())
    except:
        raise ValueError("Channel ID is not a valid channel")

    if curr_user.get_uid() in curr_channel.get_mem_list():
        if (len(message) <= 1000):
            if curr_channel.get_active_standup():
                list_of_messages.append({
                    "handle_str":
                    curr_user.get_handle_str(),
                    "message":
                    message
                })
                return {}
            else:
                raise ValueError("Standup is not active at the moment")
        else:
            raise ValueError("Message is more that 1000 characters")
    else:
        raise AccessError("The user is not a valid user")
Example #6
0
def authorized_user(token, channel_id):
    user_id = get_user_from_token(token)
    channel = get_verified_channel_from_id(channel_id, get_channel_list())
    channel_members = channel.get_mem_list()
    for member in channel_members:
        if user_id.get_uid() == member:
            return True
    return False
Example #7
0
def test_invalid_permission_id():
    global my_users
    data_delete()
    userDict1 = auth_register("*****@*****.**", "password", "Student", "Citizen")
    userDict2 = auth_register("*****@*****.**", "password", "Student", "Citizen")

    with pytest.raises(ValueError):
        admin_userpermission_change(userDict1['token'], userDict2['u_id'], 5)

    userClass = get_user_from_token(userDict2['token'])
    assert userClass.get_permission_id() == 3
Example #8
0
def test_handle_already_used2():
    global my_users
    data_delete()
    auth_register("*****@*****.**", "password", "Studentabcde", "Citizen")
    auth_register("*****@*****.**", "password", "Studentabcde", "Citizen")
    user = auth_login("*****@*****.**", 'password')

    userClass = get_user_from_token(user['token'])
    # Checking handle

    assert (userClass.get_handle_str() == "studentabcdecitizen1")
Example #9
0
def test_owner_change_admin_to_member():
    global my_users
    data_delete()
    userDict1 = auth_register("*****@*****.**", "password", "Student", "Citizen")
    userDict2 = auth_register("*****@*****.**", "password", "Student", "Citizen")
    channel_id = channels_create(userDict1['token'], 'Channel1', False)
    admin_userpermission_change(userDict1['token'], userDict2['u_id'], 2)
    channel_join(userDict2['token'], channel_id['channel_id'])
    admin_userpermission_change(userDict1['token'], userDict2['u_id'], 3)

    userClass = get_user_from_token(userDict2['token'])
    assert userClass.get_permission_id() == 3
Example #10
0
def test_member_change_to_owner_or_admin():
    global my_users
    data_delete()
    userDict1 = auth_register("*****@*****.**", "password", "Student", "Citizen")
    userDict2 = auth_register("*****@*****.**", "password", "Student", "Citizen")
    userDict3 = auth_register("*****@*****.**", "password", "Student",
                              "Citizen")

    with pytest.raises(AccessError):
        admin_userpermission_change(userDict2['token'], userDict3['u_id'], 2)

    userClass = get_user_from_token(userDict3['token'])
    assert userClass.get_permission_id() == 3
Example #11
0
def test_admint_change_admin_to_admin():
    global my_users
    data_delete()
    userDict1 = auth_register("*****@*****.**", "password", "Student", "Citizen")
    userDict2 = auth_register("*****@*****.**", "password", "Student", "Citizen")
    userDict3 = auth_register("*****@*****.**", "password", "Student",
                              "Citizen")

    admin_userpermission_change(userDict1['token'], userDict2['u_id'], 2)
    admin_userpermission_change(userDict1['token'], userDict3['u_id'], 2)
    admin_userpermission_change(userDict2['token'], userDict3['u_id'], 3)

    userClass = get_user_from_token(userDict3['token'])
    assert userClass.get_permission_id() == 3
Example #12
0
def message_remove(token, message_id):

    user_id = get_user_from_token(token).get_uid()

    message = get_message_from_m_id(message_id)
    channel = get_verified_channel_from_id(
        get_channel_from_message(message_id), get_channel_list())

    if not channel_owner(user_id, channel):
        if not message_poster(user_id, message):
            raise AccessError("Not authorized user of message")

    channel.get_mess().remove(message)
    return {}
Example #13
0
def message_edit(token, message_id, message_str):

    if not user_valid_token(token):
        raise AccessError("User is not a valid user")

    user_id = get_user_from_token(token).get_uid()
    message = get_message_from_m_id(message_id)
    channel = get_verified_channel_from_id(
        get_channel_from_message(message_id), get_channel_list())

    if not channel_owner(user_id, channel):
        if not message_poster(user_id, message):
            raise AccessError("Not authorized user of message")

    message.change_content(message_str)
    return {}
Example #14
0
def message_react(token, message_id, react_id):

    user_id = get_user_from_token(token).get_uid()

    if not valid_message_in_channel(user_id, message_id):
        raise ValueError("Invalid message_id with in the user joined channel")

    message = get_message_from_m_id(message_id)

    if already_reacted(user_id, message, react_id):
        raise ValueError("Already contains an active react")

    react = get_react_from_id(message, react_id)
    react.user_react(user_id)

    return {}
Example #15
0
def message_unreact(token, message_id, react_id):

    user_id = get_user_from_token(token).get_uid()

    if not valid_message_in_channel(user_id, message_id):
        raise ValueError("Invalid message_id with in the user joined channel")

    message = get_message_from_m_id(message_id)

    if not already_reacted(user_id, message, react_id):
        raise ValueError("Does not contain an active react")

    if not user_valid_token(token):
        raise AccessError("User is not a valid user")

    react = get_react_from_id(message, react_id)
    react.user_unreact(user_id)

    return {}
Example #16
0
def message_unpin(token, message_id):
    user_id = get_user_from_token(token).get_uid()

    message = get_message_from_m_id(message_id)
    channel = get_verified_channel_from_id(
        get_channel_from_message(message_id), get_channel_list())

    if not authorized_user(token, channel.get_channel_id()):
        raise AccessError("User is not a member of the channel")

    if not user_valid_token(token):
        raise AccessError("User is not a valid user")

    if not channel_owner(user_id, channel):
        raise ValueError("The user is not an admin")

    if not message.pinned():
        raise ValueError("Message is already unpinned")

    message.unpin_message()
    return {}
Example #17
0
def standup_output_message(token, channel_id):
    global list_of_messages

    get_verified_channel_from_id(channel_id,
                                 get_channel_list()).set_active_standup(False)
    u_id = get_user_from_token(token).get_uid()
    channel = get_verified_channel_from_id(channel_id, get_channel_list())

    output_string = ""

    for dictionary in list_of_messages:
        str1 = dictionary['handle_str']
        str2 = dictionary['message']
        adjusted_string = str1 + ": " + str2 + "\n"
        output_string += adjusted_string
        adjusted_string = ""

    list_of_messages.clear()
    message = Message(set_global_message_id(), u_id, output_string,
                      datetime.now())
    output_string = None
    channel.get_mess().append(message)
Example #18
0
def get_verified_user_from_token(token):
    user = get_user_from_token(token)
    if user == None:  #pragma: no cover
        raise ValueError("The user does not exists.")
    return user