def insert_entries(entries): for entry in entries: cel = dict(entry) for key in [ 'userdeftype', 'cid_ani', 'cid_rdnis', 'cid_dnid', 'channame', 'appname', 'appdata', 'accountcode', 'peeraccount', 'peer' ]: cel.setdefault(key, '') cel.setdefault('amaflags', 0) if 'call_log_id' in cel and cel['call_log_id']: cel['call_log_id'] = int(cel['call_log_id']) else: cel['call_log_id'] = None query = """INSERT INTO cel VALUES ( DEFAULT, :eventtype, :eventtime, :userdeftype, :cid_name, :cid_num, :cid_ani, :cid_rdnis, :cid_dnid, :exten, :context, :channame, :appname, :appdata, :amaflags, :accountcode, :peeraccount, :uniqueid, :linkedid, :userfield, :peer, :call_log_id )""" postgres.exec_sql_request(query, **cel)
def insert_entries(entries): for entry in entries: cel = dict(entry) for key in ['userdeftype', 'cid_ani', 'cid_rdnis', 'cid_dnid', 'channame', 'appname', 'appdata', 'accountcode', 'peeraccount', 'peer']: cel.setdefault(key, '') cel.setdefault('amaflags', 0) if 'call_log_id' in cel and cel['call_log_id']: cel['call_log_id'] = int(cel['call_log_id']) else: cel['call_log_id'] = None query = """INSERT INTO cel VALUES ( DEFAULT, :eventtype, :eventtime, :userdeftype, :cid_name, :cid_num, :cid_ani, :cid_rdnis, :cid_dnid, :exten, :context, :channame, :appname, :appdata, :amaflags, :accountcode, :peeraccount, :uniqueid, :linkedid, :userfield, :peer, :call_log_id )""" postgres.exec_sql_request(query, **cel)
def _setup_provd(self): provd_rest_port = 8667 try: query = 'SELECT * FROM "provisioning" WHERE id = 1;' result = postgres.exec_sql_request(query).fetchone() provd_rest_port = result['http_port'] except OperationalError: pass provd_config_obj = RestConfiguration(protocol='http', hostname=self.xivo_host, port=provd_rest_port, content_type='application/vnd.proformatique.provd+json') self.rest_provd = WsUtils(provd_config_obj) provd_url = "http://%s:%s/provd" % (self.xivo_host, provd_rest_port) self.provd_client = new_provisioning_client(provd_url)
def _setup_provd(self): provd_rest_port = 8667 try: query = 'SELECT * FROM "provisioning" WHERE id = 1;' result = postgres.exec_sql_request(query).fetchone() provd_rest_port = result['http_port'] except OperationalError: pass provd_config_obj = RestConfiguration( protocol='http', hostname=self.xivo_host, port=provd_rest_port, content_type='application/vnd.proformatique.provd+json') self.rest_provd = WsUtils(provd_config_obj) provd_url = "http://%s:%s/provd" % (self.xivo_host, provd_rest_port) self.provd_client = new_provisioning_client(provd_url)
def has_call_log(entry): query = _query_from_entry(entry) return postgres.exec_sql_request(query, **entry).scalar()
def delete_entries_between(start, end): query = "DELETE FROM cel WHERE eventtime BETWEEN :start AND :end" postgres.exec_sql_request(query, start=start, end=end)
def delete_all(): query = "DELETE FROM cel" postgres.exec_sql_request(query)
def matches_last_call_log(entry): entry['last'] = True query = _query_from_entry(entry) return postgres.exec_sql_request(query, **entry).scalar()
def _find_func_keys_for_template(template_id): query = 'SELECT func_key_id FROM func_key_mapping WHERE template_id = :template_id' cursor = exec_sql_request(query, template_id=template_id) return [row[0] for row in cursor]
def find_func_keys_with_user_destination(user_id): query = 'SELECT func_key_id FROM func_key_dest_user WHERE user_id = :user_id' cursor = exec_sql_request(query, user_id=user_id) return [row[0] for row in cursor]
def _delete_mapping_associations(func_key_id): query = 'DELETE FROM func_key_mapping WHERE func_key_id = :func_key_id' exec_sql_request(query, func_key_id=func_key_id)
def set_penalty_for_agent(queue_name, agent_id, penalty): query = 'UPDATE queuemember SET penalty = :penalty WHERE queue_name = :queue_name AND userid = :userid AND usertype = \'agent\'' exec_sql_request(query, queue_name=queue_name, userid=agent_id, penalty=penalty)
def get_extension_typeval(extension_id): query = "SELECT typeval FROM extensions WHERE id = :extension_id" cursor = exec_sql_request(query, extension_id=extension_id) return cursor.scalar()
def insert_corrupt_data(): pg_command = 'INSERT INTO queue_log(time, callid, queuename, agent, event, data1) VALUES (cast (localtimestamp - interval \'1 hour\' as text), \'test_exitwithtimeout\', \'q1\', \'NONE\', \'EXITWITHTIMEOUT\', \'1\')' postgres.exec_sql_request(pg_command)
def delete_event_by_agent_number(event, agent_number): agent_number = _build_agent_db_tag_from_number(agent_number) pg_command = 'DELETE FROM queue_log WHERE agent = \'%s\' and event = \'%s\'' % (agent_number, event) postgres.exec_sql_request(pg_command)
def delete_event_by_queue(event, queuename): pg_command = 'DELETE FROM queue_log WHERE queuename = \'%s\' and event = \'%s\'' % (queuename, event) postgres.exec_sql_request(pg_command)
def get_penalty_for_agent(queue_name, agent_id): query = 'SELECT penalty FROM queuemember WHERE queue_name = :queue_name AND userid = :userid AND usertype = \'agent\'' return exec_sql_request(query, queue_name=queue_name, userid=agent_id).first()['penalty']
def _delete_destination_associations(func_key_id): query = 'DELETE FROM func_key_dest_user WHERE func_key_id = :func_key_id' exec_sql_request(query, func_key_id=func_key_id)
def _delete_func_key(func_key_id): query = 'DELETE FROM func_key WHERE id = :func_key_id' exec_sql_request(query, func_key_id=func_key_id)
def get_entity_with_name(name): query = 'SELECT * FROM "entity" WHERE name = \'%s\';' % name result = postgres.exec_sql_request(query).fetchone() if result: return result return None
def find_template_for_user(user_id): query = 'SELECT func_key_private_template_id FROM userfeatures WHERE id = :user_id' cursor = exec_sql_request(query, user_id=user_id) row = cursor.fetchone() return row[0]
def oldest_entity_id(): """The closest we have to the "default" entity""" query = 'SELECT id FROM "entity" ORDER BY "id"' result = postgres.exec_sql_request(query).fetchone() return result.id
def _delete_template(template_id): query = 'DELETE FROM func_key_template WHERE id = :template_id' exec_sql_request(query, template_id=template_id)