Exemplo n.º 1
0
def room_members(room_id: str):
    members = RoomMember.objects(room_id=room_id)
    list_members = []
    for member in members:
        list_members.append(member.member_id)

    return list_members
Exemplo n.º 2
0
def check_is_admin(room_id: str, member_id: str):
    owner = RoomMember.objects(room_id=room_id, member_id=member_id).first()
    if not owner:
        return
    if owner.is_owner:
        return True
    return False
Exemplo n.º 3
0
def remove_member(room_id: str, member_name: str):
    user = user_logic.get_user(member_name)
    member = RoomMember.objects(room_id=room_id,
                                member_id=str(user.id)).first()
    member.delete()

    return str(user.id)
Exemplo n.º 4
0
def invite_member(room_id: str,
                  member_name: str,
                  is_owner: Optional[bool] = False):
    filters = dict()

    if room_id:
        filters.update({'room_id': str(room_id)})
    if member_name:
        member_id = user_logic.get_user_id(member_name)
        filters.update({'member_id': str(member_id)})
    if is_owner:
        filters.update({'is_owner': is_owner})

    member = RoomMember(**filters)

    return member.save()
Exemplo n.º 5
0
def get_members(room_id: str):
    members_id = RoomMember.objects(room_id=room_id)

    list_members = []
    for member in members_id:
        user = User.objects(id=ObjectId(member.member_id)).first()
        _user = user.to_dict()
        _user["is_owner"] = member.is_owner
        list_members.append(_user)

    return list_members
Exemplo n.º 6
0
def user_delete(user_id: str):
    user = User.objects(id=user_id)
    members = RoomMember.objects(member_id=str(user_id))
    if not members:
        user.delete()
        return True
    for member in members:
        if member.is_owner:
            return False

    user.delete()
    member.delete()

    return True
Exemplo n.º 7
0
def room_delete(room_id: str):
    room = Room.objects(id=ObjectId(room_id)).first()
    member = RoomMember.objects(room_id=room_id)
    messages = Messages.objects(room_id=room_id)
    if not messages:
        room.delete()
        member.delete()
        return True

    room.delete()
    member.delete()
    messages.delete()

    return True
Exemplo n.º 8
0
def get_user_room(user_id: str):
    in_room = RoomMember.objects(member_id=user_id)
    if not in_room:
        return {"detail": "No room success"}
    list_rooms = []
    for info in in_room:
        room = Room.objects(id=ObjectId(info.room_id)).first()
        data = room.to_dict()
        last_message = logic.get_last_message(info.room_id)
        try:
            last_message['timestamp'] = parse(
                last_message['created_at']).strftime('%d %b,%Y %H:%M')
        except:
            pass
        data['last_message'] = last_message
        data['unreadCount'] = len(logic.get_unread_messages(info.room_id))
        list_rooms.append(data)

    return list_rooms
Exemplo n.º 9
0
def rooms_load():
    rooms = Room.objects()
    list_rooms = []
    for room in rooms:
        members = RoomMember.objects(room_id=str(room.id))
        messages_count = Messages.objects(room_id=str(room.id)).count()
        _room = room.to_dict()
        last_message = mess_logic.get_last_message(str(room.id))
        try:
            last_message['timestamp'] = parse(
                last_message['created_at']).strftime('%d %b,%Y %H:%M')
        except:
            pass
        _room['last_message'] = last_message
        _room["member"] = []
        _room["messages_count"] = messages_count
        for member in members:
            user = User.objects(id=ObjectId(member.member_id)).first()
            _room["member"].append(user.to_dict())
        list_rooms.append(_room)

    return list_rooms
Exemplo n.º 10
0
def check_member_exists(room_id: str, member_id: str):
    member = RoomMember.objects(room_id=str(room_id),
                                member_id=str(member_id)).first()
    if member == None:
        return False
    return True