Ejemplo n.º 1
0
def get_doc_first_value(_conn: r.net.DefaultConnection,
                        _value: str,
                        _name_column: str,
                        _name_column_target: str,
                        _name_table: str,
                        _name_db: str = rtm_cfg_name_db):
    p = False
    while True:
        try:
            """If this function returns a list (instead of just single document)
            value returned is alphabetically sorted (for example, this returns
            `"Alpha"`, when there are `["Alpha", "Beta"]`).
            """
            l = r.db(_name_db).table(_name_table).filter({
                _name_column: _value
            }).run(_conn)

            return t1v(l, _name_column_target)
        except r.errors.ReqlDriverError:
            _conn.reconnect()

            if not p:
                print("\n{}{}\n{}".format(
                    "there is no database connection and/or there is no ",
                    "internet connection", "re - trying database connection"))
            p = True
Ejemplo n.º 2
0
def del_table(_conn: r.net.DefaultConnection,
              _name_table: str,
              _name_db: str = rtm_cfg_name_db,
              _expr: bool = False):
    p = False
    while True:
        try:
            if not cdn(_name_db):
                cdw_prevent_creation_or_deletion_if_string_check_fail(
                    _name_db, True, False)
                return None
            if not ctn(_name_table):
                cdw_prevent_creation_or_deletion_if_string_check_fail(
                    _name_table, False, False)
                return None

            if not check_db(_conn, _name_db):
                return None

            if not check_table(_conn, _name_table, _name_db):
                return None

            if _expr:
                return r.db(_name_db).table_drop(_name_table)
            else:
                return r.db(_name_db).table_drop(_name_table).run(_conn)
        except r.errors.ReqlDriverError:
            _conn.reconnect()

            if not p:
                print("\n{}{}\n{}".format(
                    "there is no database connection and/or there is no ",
                    "internet connection", "re - trying database connection"))
            p = True
Ejemplo n.º 3
0
def get_table_all(_conn: r.net.DefaultConnection,
                  _name_db: str = rtm_cfg_name_db):
    p = False
    while True:
        try:
            return r.db(_name_db).table_list().run(_conn)
        except r.errors.ReqlDriverError:
            _conn.reconnect()

            if not p:
                print("\n{}{}\n{}".format(
                    "there is no database connection and/or there is no ",
                    "internet connection", "re - trying database connection"))
            p = True
Ejemplo n.º 4
0
def del_doc(_conn: r.net.DefaultConnection,
            _value: str,
            _name_column: str,
            _name_table: str,
            _name_db: str = rtm_cfg_name_db,
            _expr: bool = False):
    """ Delete document based on column and its value. If there are more then
    one document has the same value on its column then multiple documents will
    be deleted.
    """
    p = False
    while True:
        try:
            if not cdn(_name_db):
                cdw_prevent_creation_or_deletion_if_string_check_fail(
                    _name_db, True, False)
                return None
            if not ctn(_name_table):
                cdw_prevent_creation_or_deletion_if_string_check_fail(
                    _name_table, False, False)
                return None

            if not check_db(_conn, _name_db):
                return None

            if not check_table(_conn, _name_table, _name_db):
                return None

            if not check_doc(_conn, _value, _name_column, _name_table,
                             _name_db):
                return None

            if _expr:
                return r.db(_name_db).table(_name_table)\
                    .filter({ _name_column:_value }).delete()
            else:
                return r.db(_name_db).table(_name_table)\
                    .filter({ _name_column:_value }).delete().run(_conn)
        except r.errors.ReqlDriverError:
            _conn.reconnect()

            if not p:
                print("\n{}{}\n{}".format(
                    "there is no database connection and/or there is no ",
                    "internet connection", "re - trying database connection"))
            p = True
Ejemplo n.º 5
0
def check_db(_conn: r.net.DefaultConnection, _name_db: str = rtm_cfg_name_db):
    p = False
    while True:
        try:
            if r.db_list().contains(_name_db).run(_conn):
                if not cdn(_name_db):
                    cw_db_mod(_name_db)
                return True
            break
        except r.errors.ReqlDriverError:
            _conn.reconnect()

            if not p:
                print("\n{}{}\n{}".format(
                    "there is no database connection and/or there is no ",
                    "internet connection", "re - trying database connection"))
            p = True

    return False
Ejemplo n.º 6
0
def get_doc_first(_conn: r.net.DefaultConnection,
                  _value: str,
                  _name_column: str,
                  _name_column_target: str,
                  _name_table: str,
                  _name_db: str = rtm_cfg_name_db):
    p = False
    while True:
        try:
            l = r.db(_name_db).table(_name_table).filter({
                _name_column: _value
            }).run(_conn)

            return t1d(l, _name_column_target)
        except r.errors.ReqlDriverError:
            _conn.reconnect()

            if not p:
                print("\n{}{}\n{}".format(
                    "there is no database connection and/or there is no ",
                    "internet connection", "re - trying database connection"))
            p = True
Ejemplo n.º 7
0
def create_doc(_conn: r.net.DefaultConnection,
               _dict: dict,
               _name_table: str,
               _name_db: str = rtm_cfg_name_db,
               _unique_column: list = [],
               _expr: bool = False):
    p = False
    while True:
        try:
            if not cdn(_name_db):
                cdw_prevent_creation_or_deletion_if_string_check_fail(
                    _name_db, True, True)
                return None
            if not ctn(_name_table):
                cdw_prevent_creation_or_deletion_if_string_check_fail(
                    _name_table, False, True)
                return None
            """Make sure the document's value is unique based on `_unique_column`."""
            if check_db(_conn, _name_db) and\
               check_table(_conn, _name_table, _name_db):
                for i in _unique_column:
                    if check_doc(_conn, _dict[i], i, _name_table, _name_db):
                        return None

            if _expr:
                return r.db(_name_db).table(_name_table).insert(_dict)
            else:
                return r.db(_name_db).table(_name_table).insert(_dict).run(
                    _conn)
        except r.errors.ReqlDriverError:
            _conn.reconnect()

            if not p:
                print("\n{}{}\n{}".format(
                    "there is no database connection and/or there is no ",
                    "internet connection", "re - trying database connection"))
            p = True
Ejemplo n.º 8
0
def check_doc(_conn: r.net.DefaultConnection,
              _value: str,
              _column: str,
              _name_table: str,
              _name_db: str = rtm_cfg_name_db):
    p = False
    while True:
        try:
            if check_db(_conn, _name_db):
                if check_table(_conn, _name_table, _name_db):
                    return bool(
                        get_doc_first_value(_conn, _value, _column, _column,
                                            _name_table, _name_db))
            break
        except r.errors.ReqlDriverError:
            _conn.reconnect()

            if not p:
                print("\n{}{}\n{}".format(
                    "there is no database connection and/or there is no ",
                    "internet connection", "re - trying database connection"))
            p = True

    return False