Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
@soft_del
def select(self, **kwargs):
#select='*', where=None, inner_joins=None, left_joins=None,
#group=None, order=None, limit=None, db=None, role='replica'):
"""
Perform a SELECT statement on the model's table in the replica database.
:param select: Columns to return in the SELECT statement.
:type select: string, array, dict
:param where: WHERE clause of the SELECT statement. This can be a plain string, a dict or an array.
:type where: string, dict, array
:param inner_joins: Specifies an INNER JOIN clause. Can be a plain string (without the INNER JOIN part), an array of strings or an array of classes if the relationship was defined in the model.
:type inner_joins: string, array
:param left_joins: Specifies an LEFT JOIN clause. Can be a plain string (without the LEFT JOIN part), an array of strings or an array of classes if the relationship was defined in the model.
:type left_joins: string, array
:param group: Specifies a GROUP BY clause.
:type group: string
@soft_del
def delete(self, **kwargs):
"""
Performs a DELETE statement on the model's table in the master database.
:param where: The WHERE clause. This can be a plain string, a dict or an array.
:type where: string, dict, array
"""
kwargs['stack'] = self.stack_mark(inspect.stack())
return self.db_adapter(role='master').delete(**kwargs)
@soft_del
def update(self, **kwargs):
"""
Performs an UPDATE statement on the model's table in the master database.
:param values: A dictionary of values to update. ``datetime``, ``dict`` and ``bool`` objects can be passed as is and will be correctly serialized by psycopg2.
:type values: dict
:param where: The WHERE clause. This can be a plain string, a dict or an array.
:type where: string, dict, array
"""
kwargs['stack'] = self.stack_mark(inspect.stack())
kwargs['primary_key'] = self.primary_key
column_names = self.table_schema().keys()
now = datetime.utcnow()
if 'updated_at' in column_names:
if 'updated_at' not in kwargs['values']:
kwargs['values']['updated_at'] = now
@soft_del
def count(self, **kwargs):
"""
Performs a COUNT statement on the model's table in the replica database.
:param select: Column to be counted.
:type select: string
:param where: WHERE clause of the SELECT statement. This can be a plain string, a dict or an array.
:type where: string, dict, array
:param db: Database name from your ``jardin_conf.py``, overrides the default database set in the model declaration.
:type db: string
:param role: One of ``('master', 'replica')`` to override the default.
:type role: string
:returns: integer
"""
if 'select' in kwargs:
kwargs['select'] = {'cnt': 'COUNT(%s)' % kwargs['select']}