def find(cls, criteria_obj=None): conn = cls.connect_db() try: c = conn.cursor() c.execute('SELECT ' + ','.join(cls.property_names) + ' FROM ' + cls.table_name + ' WHERE ' + ' AND '.join([ '%s=?' % property for property in cls.key_properties]), tuple([getattr(criteria_obj, property) for property in cls.key_properties])) return cls.from_dict(dict(zip(cls.property_names, c.fetchone()))) except Exception as e: logger.debug(e) return None finally: conn.close()
def is_contact_blocked(cls, contact=''): if contact is None or contact == '': logger.debug('returning False as contact is None or Empty in is_contact_blocked()') return False conn = cls.connect_db() try: c = conn.cursor() c.execute('SELECT COUNT(*) FROM ' + cls.table_name + ' WHERE contact=?', (contact, )) return int(c.fetchone()[0]) > 0 except Exception as e: logger.error(e) logger.error('returning False as exception occurs in is_contact_blocked()') return False finally: conn.close()
def is_older_required(cls, item=None): if item: publish_date = item.publish_date try: if publish_date is None: logger.debug('publish_date is not yet loaded, hence returning true in is_older_required()') return False if (datetime.datetime.now() - publish_date).days > int(config.HOUSEKEEPING_RECORD_ORDLER_THAN): return True except Exception as e: logger.warn('error while calculating the date difference..') logger.warn(e) return False return False else: logger.debug('item is None.. hence returning true in is_older_required()') return True
def validate(cls, user=None): if user is not None: if user.username and user.username != '' and user.password and user.password != '': conn = cls.connect_db() try: c = conn.cursor() c.execute("SELECT COUNT(*) FROM " + cls.table_name + " WHERE username=? and password=?", (user.username, user.password)) return int(c.fetchone()[0]) > 0 except Exception as e: logger.error('failed to retrieve the item count') logger.error(e) return False finally: conn.close() else: logger.debug('username or password is empty.. hence returning false in validate()') return False else: return False
def is_exists(cls, item=None): if item: job_title = item.job_title if job_title: conn = cls.connect_db() try: c = conn.cursor() c.execute("SELECT COUNT(*) FROM " + cls.table_name + " WHERE job_title=?", (job_title,)) job_item_count = int(c.fetchone()[0]) return job_item_count > 0 except Exception as e: logger.error('failed to retrieve the item count') logger.error(e) return False finally: conn.close() else: logger.debug('item title is None.. hence returning true in is_exist()') return True else: logger.debug('item is None.. hence returning true in is_exist()') return True
def should_be_rejected(cls, input_text=''): if input_text is None or input_text == '': logger.debug('returning False as input_text is None or Empty in should_be_rejected()') return False try: records = cls.findall() for record in records: match = re.search(record.reject_pattern, input_text) if match: logger.debug('returning True as input_text matches %s in should_be_rejected()' % record.reject_pattern) return True else: pass logger.debug('returning False as input_text does not match any patterns should_be_rejected()') return False except Exception as e: logger.error(e) logger.error('returning False as exception occurs in is_contact_blocked()') return False