Manejo de personas
This commit is contained in:
40
src/address_book.py
Normal file
40
src/address_book.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import os
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
|
class Contact:
|
||||||
|
def __init__(self):
|
||||||
|
self.names = ''
|
||||||
|
self.last_name = ''
|
||||||
|
self.maiden_name = ''
|
||||||
|
self.emails = []
|
||||||
|
self.phones = []
|
||||||
|
|
||||||
|
def full_name(self):
|
||||||
|
return ' '.join([self.names, self.last_name, self.maiden_name])
|
||||||
|
|
||||||
|
|
||||||
|
class AddressBook:
|
||||||
|
def __init__(self, data_folder):
|
||||||
|
filename = os.path.join(data_folder, 'address_book.json')
|
||||||
|
with open(filename, 'r') as f:
|
||||||
|
data = json.load(f)
|
||||||
|
|
||||||
|
self.contacts = []
|
||||||
|
for c in data:
|
||||||
|
contact = Contact()
|
||||||
|
for k, val in c.items():
|
||||||
|
setattr(contact, k, val)
|
||||||
|
self.contacts.append(contact)
|
||||||
|
|
||||||
|
def find(self, name):
|
||||||
|
for c in self.contacts:
|
||||||
|
if c.full_name() == name or c.names == name or c.last_name == name:
|
||||||
|
return c
|
||||||
|
return None
|
||||||
|
|
||||||
|
def find_id(self, name):
|
||||||
|
for (k, c) in enumerate(self.contacts):
|
||||||
|
if c.full_name() == name or c.names == name or c.last_name == name:
|
||||||
|
return k
|
||||||
|
return -1
|
37
src/bosses.py
Normal file
37
src/bosses.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import os
|
||||||
|
import json
|
||||||
|
from src.address_book import AddressBook
|
||||||
|
|
||||||
|
|
||||||
|
class Boss:
|
||||||
|
def __init__(self):
|
||||||
|
self.full_name = ''
|
||||||
|
self.aliases = []
|
||||||
|
self.contact = None
|
||||||
|
|
||||||
|
|
||||||
|
class Bosses:
|
||||||
|
def __init__(self, data_folder):
|
||||||
|
filename = os.path.join(data_folder, 'bosses.json')
|
||||||
|
with open(filename, 'r') as f:
|
||||||
|
data = json.load(f)
|
||||||
|
self.bosses = []
|
||||||
|
addrs = AddressBook(data_folder)
|
||||||
|
for b in data:
|
||||||
|
boss = Boss()
|
||||||
|
for k, val in b.items():
|
||||||
|
setattr(boss, k, val)
|
||||||
|
boss.contact = addrs.find(boss.full_name)
|
||||||
|
self.bosses.append(boss)
|
||||||
|
|
||||||
|
def is_boss(self, name):
|
||||||
|
for boss in self.bosses:
|
||||||
|
if boss.full_name in name:
|
||||||
|
return True
|
||||||
|
for m in boss.contact.emails:
|
||||||
|
if m in name:
|
||||||
|
return True
|
||||||
|
for a in boss.aliases:
|
||||||
|
if a in name:
|
||||||
|
return True
|
||||||
|
return False
|
Reference in New Issue
Block a user