106 lines
3.6 KiB
Python
106 lines
3.6 KiB
Python
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 [] |