-
Notifications
You must be signed in to change notification settings - Fork 0
/
db.py
133 lines (116 loc) · 4.72 KB
/
db.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
from typing import final
from weakref import finalize
import mysql.connector
from mysql.connector import Error
from variaveis import V
from auth import Auth
from db_variables import Var
class UsuarioDAO:
def __init__(self):
try:
self.conn = mysql.connector.connect(
host='localhost',
user=Var().DB_USER,
password=Var().DB_PASSWORD,
port=Var().DB_PORT,
database=Var().DB_NAME
)
except Error as e:
print (e)
return False
def signup(self, user):
if (self.conn.is_connected()):
try:
cursor = self.conn.cursor()
cursor.execute('INSERT INTO users (email, password, nome, idade) VALUES ("{}","{}","{}","{}");'.format(
user['email'], user['password'], user['nome'], user['idade']
))
self.conn.commit()
success, message = True, 'Usuário inserido com sucesso!'
except Error as e:
if (e.msg.find('Duplicate entry', 0) != -1):
success, message = False, 'email já cadastrado no banco'
else:
success, message = False, str(e)
else:
success, message = False, 'sem conexão com db'
cursor.close()
self.conn.close()
return {'success': success, 'message': message}
def getUser(self, id):
usuario = None
if (self.conn.is_connected()):
cursor = self.conn.cursor()
try:
cursor.execute('SELECT * FROM users WHERE id="{}";'.format(id))
ut = cursor.fetchall() # usertupla.
if (len(ut) == 1):
ut = ut[0] # o índice zero é porque retorna um vetor
usuario = {'id': ut[0], 'email': ut[1], 'nome': ut[3], 'idade': ut[4]}
success, message = True, 'usuário encontrado.'
else:
success, message = False, 'usuário não encontrado.'
except Error as e:
success, message = False, str(e)
else:
success, message = False, 'sem conexão com db'
cursor.close()
self.conn.close()
return {'success': success, 'message': message, 'usuario': usuario}
def editUser(self, user):
if (self.conn.is_connected()):
cursor = self.conn.cursor()
try:
cursor.execute('UPDATE users SET nome="{}", idade="{}" WHERE id="{}";'.format(
user['nome'], user['idade'], user['id']
))
self.conn.commit()
if (cursor.rowcount == 1):
success, message = True, 'usuário editado com sucesso'
else:
success, message = False, 'credenciais não encontradas'
except Error as e:
success, message = False, str(e)
else:
success, message = False, 'sem conexão com db'
cursor.close()
self.conn.close()
return {'success': success, 'message': message}
def deleteUser(self, id):
if (self.conn.is_connected()):
cursor = self.conn.cursor()
try:
cursor.execute('DELETE FROM users WHERE id="{}"'.format(id))
self.conn.commit()
if (cursor.rowcount == 1):
success, message = True, 'usuário excluído'
else:
success, message = False, 'usuário não encontrado'
except Error as e:
success, message = False, str(e)
else:
success, message = False, 'sem conexão com db'
cursor.close()
self.conn.close()
return {'success': success, 'message': message}
def login(self, user):
if (self.conn.is_connected()):
cursor = self.conn.cursor()
token = None
try:
cursor.execute('SELECT * FROM users WHERE email="{}" AND password="{}"'.format(
user['email'], user['password']
))
resultado = cursor.fetchall()
if (len(resultado) == 1):
token = Auth().criarToken(resultado[0])
success, message = True, 'usuário logado'
else:
success, message = False, 'credenciais inválidas'
except Error as e:
success, message = False, str(e)
else:
success, message = False, 'sem conexão com db'
cursor.close()
self.conn.close()
return {'success': success, 'message': message, 'token': token}