import sqlite3 from models.database import Database class User: def __init__(self, connection : sqlite3.Connection, id = None, username = None, firstname = None, lastname = None, address = None, zipcode = None, city_id = None, email = None, phone = None, password = None, role = None): self.connection = connection self.id = id self.username = username self.firstname = firstname self.lastname = lastname self.address = address self.zipcode = zipcode self.city_id = city_id self.email = email self.phone = phone self.password = password self.role = role def load_by_id(self): cur = Database.connection.cursor() row = cur.execute("SELECT * FROM users WHERE id = ?", (self.id,)).fetchone() if row == None: return False self._set_row_values(row) cur.close() return True def load_by_username(self): cur = Database.connection.cursor() row = cur.execute("SELECT * FROM users WHERE username = ?", (self.username,)).fetchone() if row == None: return False self._set_row_values(row) cur.close() return True def save(self): cur = Database.connection.cursor() cur.execute(""" INSERT INTO users (id, username, firstname, lastname, address, zipcode, city_id, email, phone, password, role) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) """, (self.id, self.username, self.firstname, self.lastname, self.address, self.zipcode, self.city_id, self.email, self.phone, self.password, self.role)) Database.connection.commit() cur.close() return True def update(self): cur = Database.connection.cursor() cur.execute(""" UPDATE users SET username = ?, firstname = ?, lastname = ?, address = ?, zipcode = ?, city_id = ?, email = ?, phone = ?, password = ?, role = ?, WHERE id = ? """, (self.username, self.firstname, self.lastname, self.zipcode, self.city_id, self.email, self.phone, self.password, self.role, self.id)) Database.connection.commit() cur.close() return True def _set_row_values(self, row): self.id = row[0] self.username = row[1] self.firstname = row[2] self.lastname = row[3] self.address = row[4] self.zipcode = row[5] self.city_id = row[6] self.email = row[7] self.phone = row[8] self.password = row[9] self.role = row[10]