def delete(self, cursor): sql = ''' DELETE FROM users WHERE id=%s ''' cursor.execute(sql, (self.id, )) self._id = -1 connect1().close() return True
def list_all_messages(username, password): if User.load_user_by_username(connect1().cursor(), username) == None: print('This username doesn\'t exists, submit a correct username') else: user1 = User.load_user_by_username(connect1().cursor(), username) if check_password(str(password), user1.hashed_password): messages = user1.load_messages_by_user_id(connect1().cursor()) return messages else: print('The submitted password is incorrect')
def delete_user(username, password): if User.load_user_by_username(connect1().cursor(), username) == None: print('This username doesn\'t exists, submit a correct username') else: user1 = User.load_user_by_username(connect1().cursor(), username) if check_password(str(password), user1.hashed_password): user1.delete(connect1().cursor()) connect1().close() return f"User {username} has been successfully removed" else: print('The submitted password is incorrect')
def create_user(username, password): if len(password) < 8: print('password is too short') elif User.load_user_by_username(connect1().cursor(), username) != None: print('This username already exists, choose a different one') else: a = User(username, password) cursor = connect1().cursor() a.save_to_db(cursor) connect1().close() return "User created"
def load_all_users(cursor): sql = ''' SELECT id, username, hashed_password FROM users ''' users = [] cursor.execute(sql) for row in cursor.fetchall(): id_, username, hashed_password = row loaded_user = User() loaded_user._id = id_ loaded_user.username = username loaded_user._hashed_password = hash_password users.append(loaded_user) connect1().close() return users
def save_to_db(self, cursor): if self._id == -1: sql = """INSERT INTO users(username, hashed_password) VALUES(%s, %s) RETURNING id""" values = (self.username, self.hashed_password) cursor.execute(sql, values) self._id = cursor.fetchone()[0] # or cursor.fetchone()['id'] return True else: sql = """UPDATE Users SET username=%s, hashed_password=%s WHERE id=%s""" values = (self.username, self.hashed_password, self.id) cursor.execute(sql, values) connect1().close() return True
def load_messages_by_user_id(self, cursor): sql = f''' SELECT id, from_id, to_id, text, creation_date FROM messages WHERE to_id = '{self.id}' ''' messages = [] cursor.execute(sql) for row in cursor.fetchall(): id_, from_id, to_id, text, creation_date = row loaded_message = Messages(from_id, to_id, text) loaded_message._id = id_ loaded_message.creation_date = creation_date messages.append(loaded_message) connect1().close() return messages
def change_password(username, password, new_pass): if User.load_user_by_username(connect1().cursor(), username) == None: print('This username doesn\'t exists, submit a correct username') else: user1 = User.load_user_by_username(connect1().cursor(), username) if check_password(str(password), user1.hashed_password): if len(new_pass) < 8: print('Password should have minimum 8 characters') else: user1.hashed_password = hash_password(new_pass, 'salt') user1.save_to_db(connect1().cursor()) connect1().close() return "New password has been set" else: print('The submitted password is incorrect')
def load_user_by_id(cursor, id_): sql = ''' SELECT id, username, hashed_password FROM users WHERE id = %s ''' cursor.execute(sql, (id_, )) data = cursor.fetchone() connect1().close() if data: id_, username, hashed_password = data loaded_user = User(username) loaded_user._id = id_ loaded_user._hashed_password = hashed_password return loaded_user else: return None
def load_all_messages(cursor): sql = ''' SELECT id, from_id, to_id, text FROM messages ''' messages = [] cursor.execute(sql) for row in cursor.fetchall(): id_, from_id, to_id, text = row loaded_message = Messages loaded_message._id = id_ loaded_message.from_id = from_id loaded_message.to_id = to_id loaded_message.text = text messages.append(loaded_message) connect1().close() return messages
def execute_query(query, return_result=True, connection_method = connect1()): connection_method.cursor().execute(query) result = [] if return_result: for item in connect().cursor(): result.append(item) connect().close() return result
def save_to_db(self, cursor): if self._id == -1: sql = """INSERT INTO messages(from_id, to_id, text, creation_date) VALUES(%s, %s, %s, %s) RETURNING id""" values = (self.from_id, self.to_id, self.text, datetime.date.today()) cursor.execute(sql, values) self._id = cursor.fetchone()[0] # or cursor.fetchone()['id'] connect1().close() return True else: sql = """UPDATE messages SET from_id=%s, to_id=%s, text = %s, creation_date=%s WHERE id=%s""" values = (self.from_id, self.to_id, self.id, self.text, datetime.date.today()) cursor.execute(sql, values) connect1().close() return True
def send_a_massage(username, password, to_id, text): if User.load_user_by_username(connect1().cursor(), username) == None: print('This username doesn\'t exists, submit a correct username') else: user1 = User.load_user_by_username(connect1().cursor(), username) if check_password(str(password), user1.hashed_password): a = User.load_user_by_id(connect1().cursor(), to_id) if a != None: if len(text) < 255: from_id = user1.id message1 = Messages(from_id, to_id, text) message1.save_to_db(connect1().cursor()) return "Message sent" else: print('Your message is too long, should be maximum 255 characters') else: print("Receiver\'s id is incorrect") else: print('Wrong password')
from functions import execute_query from connection import connect, connect1 # Database query = '''CREATE DATABASE aplikacja;''' try: execute_query(query, False, connect()) except Exception: print("taka baza danych już istnieje") #connecting to aplikacja database connect1() # Users and messages tables query_users_table = ''' CREATE TABLE users( id serial primary key, username varchar(255), hashed_password varchar(80) ) ''' query_messages_table = ''' CREATE TABLE messages( id serial primary key, from_id int,
def list_all_users(): user1 = User.load_all_users(connect1().cursor()) for i in user1: print(i.username)