-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathPersona.py
More file actions
146 lines (112 loc) · 4.33 KB
/
Persona.py
File metadata and controls
146 lines (112 loc) · 4.33 KB
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
134
135
136
137
138
139
140
141
142
143
144
145
146
class Persona():
"""
Persona: Información básica de usuarios y empleados
Atributos: id, nombre, email, telefono, direccion, comentarios, pedidos
"""
personas = [] # Lista de personas
contador_ids = 0 # Contador de ids - AUTOINCREMENTABLE
def __init__(self, nombre="", email="", telefono="", direccion="", password=""):
"""
Id: self._id
Name: self._nombre
Email: self._email
Telephone: self._telefono
Address: self._direccion
Password: self._password
"""
Persona.contador_ids += 1
self.setId(Persona.contador_ids)
self.setNombre(nombre)
self.setEmail(email)
self.setTelefono(telefono)
self.setDireccion(direccion)
self.setPassword(password)
self.setListaDeseos([])
self.setComentarios([])
self.setPedidos([])
def setId(self, id):
self._id = id
def getId(self):
return self._id
def setNombre(self, nombre):
self._nombre = nombre
def getNombre(self):
return self._nombre
def setEmail(self, email):
self._email = email
def getEmail(self):
return self._email
def setTelefono(self, telefono):
self._telefono = telefono
def getTelefono(self):
return self._telefono
def setDireccion(self, direccion):
self._direccion = direccion
def getDireccion(self):
return self._direccion
def setPassword(self, password):
self._password = password
def getPassword(self):
return self._password
def setComentarios(self, comentarios):
self._comentarios = comentarios
def getComentarios(self):
return self._comentarios
def setPedidos(self, pedidos):
self._pedidos = pedidos
def getPedidos(self):
return self._pedidos
def setListaDeseos(self, listaDeseos):
self._listaDeseos = listaDeseos
def getListaDeseos(self):
return self._listaDeseos
def registrarse(self, nombre, email, telefono, direccion, password, mensajes):
# Metodo que sirve para registrar un usuario
for persona_actual in Persona.personas:
if persona_actual.getEmail() == email:
return {"exitoso": False,
"mensaje": mensajes["error_register"]}
self.setNombre(nombre)
self.setEmail(email)
self.setTelefono(telefono)
self.setDireccion(direccion)
self.setPassword(password)
# Una vez al usuario se le seteen los datos, hay que agregarlo a la lista de personas
Persona.personas.append(self)
return {
"exitoso": True,
"mensaje": mensajes["succes_register"]
}
def iniciar_sesion(self, mensajes):
# Metodo que sirve para iniciar sesion desde usuario
for persona_actual in Persona.personas:
if persona_actual.getEmail() == self.getEmail() and persona_actual.getPassword() == self.getPassword():
# Se le añaden al usuario actual en el sistema los atributos que encontro de si mismo en la lista de personas
self.setId(persona_actual.getId())
self.setNombre(persona_actual.getNombre())
self.setTelefono(persona_actual.getTelefono())
self.setDireccion(persona_actual.getDireccion())
self.setListaDeseos(persona_actual.getListaDeseos())
self.setComentarios(persona_actual.getComentarios())
self.setPedidos(persona_actual.getPedidos())
return {
"exitoso": True,
"mensaje": mensajes["succes_login"]
}
return {
"exitoso": False,
"mensaje": mensajes["error_login"]
}
def agregar_lista_deseos(self, producto, mensajes):
# Metodo que sirve para agregar un producto a la lista de deseos de determinada persona
for productoActual in self._listaDeseos:
if productoActual.getId() == producto.getId():
return {
"exitoso": False,
"mensaje": mensajes["product_already_added"]
}
self._listaDeseos.append(producto)
return {
"exitoso": True,
"mensaje": mensajes["product_added"]
}