Exemple #1
0
def message_react(token, message_id, react_id):
    global data
    global valid_tokens
    global channels
    try:
        u_id = decodeToken(token)
        #check if react_id is valid at the start
        if react_id != 1:
            raise ValueError("Invalid react ID!")

        message = getMessage(message_id)
        channel = getMessageChannel(message_id)
        isUserChan(u_id, channel)
        for react in message["reacts"]:
            for react_users in react[
                    "u_ids"]:  #check that the user hasn't already reacted
                if react_users == u_id:
                    raise ValueError(
                        "User already has an active react for this message!")
        for react in message["reacts"]:
            if react["react_id"] == react_id:
                react["u_ids"].append(u_id)  #add the reaction
                return {}
        message["reacts"].append({
            "react_id": react_id,
            "u_ids": [u_id]
        })  # genereate the react and ass
        return {}

    except ValueError as e:
        raise e
    except AccessError as e:
        raise e
Exemple #2
0
def message_unpin(token, message_id):
    global data
    global valid_tokens
    global channels
    try:
        u_id = decodeToken(token)
        message = getMessage(message_id)
        channel = getMessageChannel(message_id)
        isUserChan(u_id, channel) #Will raise error if fails
        for members in data: 
            if members["u_id"] == u_id:
                if int(members["permission_id"]) == 1 or int(members["permission_id"]) == 2: #check user is admin ############ ADMIN OR OWNER?
                    if message["is_pinned"]: #check if pinned
                        message["is_pinned"] = False
                        return {}
                    raise ValueError("Message is not pinned!")
        raise ValueError("User does not have permission to unpin!")   
    except ValueError as e:
        raise e
    except AccessError as e:
        raise e
Exemple #3
0
def message_unreact(token, message_id, react_id):
    global channels
    try:
        u_id = decodeToken(token)
        #check if react_id is valid at the start
        if react_id != 1:
            raise ValueError("Invalid react ID!")

        channel = getMessageChannel(message_id)
        message = getMessage(message_id)
        isUserChan(u_id, channel) #Will raise error if fails
        for react in message["reacts"]: 
            for react_users in react["u_ids"]: #check that the user hasn't already reacted
                if react_users == u_id:
                    react["u_ids"].remove(u_id)
                    return {}
        raise ValueError("User already has no active react for this message!")

    except ValueError as e:
        raise e
    except AccessError as e:
        raise e
Exemple #4
0
def message_edit(token, message_id, new_message):
    global channels

    try:
        u_id = decodeToken(token)
        message = getMessage(message_id)
        channel = getMessageChannel(message_id)
        if message["u_id"] == u_id: #check if user is the sender
            doEdit(message, new_message, token)
            return {}        
        for members in channel["owner_members"]: #user is owner of channel
            if members["u_id"] == u_id:
                doEdit(message, new_message, token)
                return {}
        users = getUser(u_id) #user is admin
        if users["permission_id"] == 1 or users["permission_id"] == 2:
            doEdit(message, new_message, token)
            return {}
        raise AccessError("User does not have permission to edit message!")

    except ValueError as e:
        raise e
    except AccessError as e:
        raise e
Exemple #5
0
def message_remove(token, message_id):
    global channels

    try:
        u_id = decodeToken(token)

        message = getMessage(message_id)
        channel = getMessageChannel(message_id)
        if message["u_id"] == u_id:  #check if user is the sender
            channel["messages"].remove(message)
            return {}
        for members in channel["owner_members"]:  #user is owner of channel
            if members["u_id"] == u_id:
                channel["messages"].remove(message)
                return {}
        if getUserPerm(u_id) == 2 or getUserPerm(u_id) == 1:
            channel["messages"].remove(message)
            return {}
        raise AccessError("User does not have permission to remove message!")

    except ValueError as e:
        raise e
    except AccessError as e:
        raise e