import config, psycopg2 def tupleDictionaryFactory(columns, row): columns = [desc[0] for desc in columns] return dict(zip(columns, row)) def create_messages(): database_config = config.config() with psycopg2.connect(**database_config) as conn: try: with conn.cursor() as cur: with open('sql/CREATE/messages.sql') as file: sql = file.read() cur.execute(sql) except (Exception, psycopg2.DatabaseError) as error: print(error) conn.rollback() return None def create_channels(): database_config = config.config() with psycopg2.connect(**database_config) as conn: try: with conn.cursor() as cur: with open('sql/CREATE/channels.sql') as file: sql = file.read() cur.execute(sql) except (Exception, psycopg2.DatabaseError) as error: print(error) conn.rollback() return None def get_channel(id): database_config = config.config() with psycopg2.connect(**database_config) as conn: try: with conn.cursor() as cur: sql = f"SELECT * FROM channels WHERE id=%s;" cur.execute(sql, (id,)) rows = cur.fetchone() if rows: rows = tupleDictionaryFactory(cur.description, rows) return rows return {} except (Exception, psycopg2.DatabaseError) as error: print(error) conn.rollback() return {} def insert_message(payload): database_config = config.config() with psycopg2.connect(**database_config) as conn: try: with conn.cursor() as cur: with open('sql/INSERT/messages.sql') as file: sql = file.read() cur.execute(sql, payload) rows = cur.fetchone() if rows: rows = tupleDictionaryFactory(cur.description, rows) return rows return {} except (Exception, psycopg2.DatabaseError) as error: print(error) conn.rollback() return {} def select_message(id): database_config = config.config() with psycopg2.connect(**database_config) as conn: try: with conn.cursor() as cur: with open('sql/SELECT/messages.sql') as file: sql = file.read() cur.execute(sql, (id, )) rows = cur.fetchone() if rows: rows = tupleDictionaryFactory(cur.description, rows) return rows return {} except (Exception, psycopg2.DatabaseError) as error: print(error) conn.rollback() return {} def select_messages(payload): database_config = config.config() with psycopg2.connect(**database_config) as conn: try: with conn.cursor() as cur: with open('sql/SELECT/messagesByChannel.sql') as file: sql = file.read() cur.execute(sql, payload) rows = cur.fetchall() if rows: rows = [tupleDictionaryFactory(cur.description, row) for row in rows] return rows return [] except (Exception, psycopg2.DatabaseError) as error: print(error) conn.rollback() return []