87 lines
2.7 KiB
Python
87 lines
2.7 KiB
Python
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, fistname, lastname, address, zipcode, city_id, email, phone, password, role) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
""", (self.id, self.username, self.firstname, self.lastname, 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 = ?,
|
|
fistname = ?,
|
|
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]
|
|
|