users api done

This commit is contained in:
andrei-mihnea-cerbu
2024-01-09 03:06:03 +02:00
parent 6ece0f37b1
commit f80b8c38db
35 changed files with 221 additions and 11 deletions
@@ -0,0 +1,38 @@
import psycopg2
DATABASE_CONFIG = {
'dbname': 'messenger',
'user': 'andrei_cerbu',
'password': 'andrei',
'host': 'localhost',
'port': '5432'
}
def create_connection():
try:
connection = psycopg2.connect(**DATABASE_CONFIG)
return connection
except psycopg2.Error as e:
print(f"Error: Unable to connect to the database\n{e}")
return None
def execute_query(connection, query, params=None, fetchall=False):
try:
with connection.cursor() as cursor:
cursor.execute(query, params)
if fetchall:
result = cursor.fetchall()
return result
else:
connection.commit() # Commit the transaction for INSERT, UPDATE, DELETE queries
except psycopg2.Error as e:
print(f"Error: Unable to execute the query\n{e}")
return None
def close_connection(connection):
if connection:
connection.close()
print("Connection closed.")
@@ -0,0 +1,81 @@
from api.v1.database.postgres_database import create_connection, execute_query, close_connection
def get_user_by_id(user_id):
connection = create_connection()
if connection:
try:
query = """
SELECT * FROM users WHERE id = %s;
"""
params = (user_id,)
result = execute_query(connection, query, params, fetchall=True)
if result:
user_data = result[0]
return user_data
else:
return None
finally:
close_connection(connection)
def get_user_by_email(email):
connection = create_connection()
if connection:
try:
query = """
SELECT * FROM users WHERE email = %s;
"""
params = (email,)
result = execute_query(connection, query, params, fetchall=True)
if result:
user_data = result[0]
return user_data
else:
return None
finally:
close_connection(connection)
def create_user_db(username, password, email):
connection = create_connection()
if connection:
try:
query = """
INSERT INTO users (username, password, email)
VALUES (%s, %s, %s);
"""
params = (username, password, email)
execute_query(connection, query, params)
finally:
close_connection(connection)
def update_user_db(user_id, new_username, new_password, new_email):
connection = create_connection()
if connection:
try:
query = """
UPDATE users
SET username = %s, password = %s, email = %s
WHERE id = %s;
"""
params = (new_username, new_password, new_email, user_id)
execute_query(connection, query, params)
print(f"User with ID {user_id} updated successfully.")
finally:
close_connection(connection)
def delete_user_db(user_id):
connection = create_connection()
if connection:
try:
query = """
DELETE FROM users WHERE id = %s;
"""
params = (user_id,)
execute_query(connection, query, params)
print(f"User with ID {user_id} deleted successfully.")
finally:
close_connection(connection)