Help for cdv.debit

cdv ยท debit

Sample CLI

gway cdv debit

References

Full Code

def debit(table_path: str, entry: str, *, field: str = 'balance', **kwargs) -> bool:
    """Subtract 1 (or amount from kwargs) from the given field for a record."""
    path = _resolve_path(table_path)
    records = _read_table(path)
    if entry not in records:
        gw.warn(f"Entry '{entry}' does not exist; cannot debit.")
        return False
    try:
        amt = float(kwargs.pop('amount', 1))
        prev = float(records[entry].get(field, 0))
        records[entry][field] = str(prev - amt)
        records[entry].update(kwargs)
        _write_table(path, records)
        gw.info(f"Debited {amt} from '{entry}' field '{field}'. New value: {records[entry][field]}")
        return True
    except Exception as e:
        gw.error(f"debit failed: {e}")
        return False