+ def query(self, object, **kwargs):
+ if kwargs:
+ if object.lower() == 'user' and self.driver is DBDriver.PG:
+ sql = 'select * from "{0}" where '.format(object)
+ else:
+ sql = 'select * from {0} where '.format(object)
+ placeholder = []
+ clause = None
+ for name, value in kwargs.items():
+ if name.lower() == 'user' and self.driver is DBDriver.PG:
+ attr = '"{0}"'.format(name)
+ else:
+ attr = name
+ if clause:
+ clause += ' and {0} = %s '.format(attr)
+ else:
+ clause = '{0} = %s'.format(attr)
+ placeholder.append(value)
+ sql += clause
+ logger.info("{0} -> {1}".format(sql, placeholder))
+ return self.db.query(sql, placeholder)
+ else:
+ raise Exception("{0}: Missing at least one query parameter".format(object))
+