18 lines
620 B
Python
18 lines
620 B
Python
from custom_decorators import singleton
|
|
from models import User
|
|
from repositories.user import UserRepository
|
|
|
|
|
|
@singleton
|
|
class UserService:
|
|
def __init__(self, config):
|
|
self.config = config
|
|
self.user_repo = UserRepository(config)
|
|
|
|
def get_addresses(self, name=None, phone=None, email=None):
|
|
if phone or email:
|
|
users = self.user_repo.get_or_create(User(name=name, phone=phone, email=email))
|
|
addresses = set(user.address for user in users if user.address)
|
|
return list(addresses)
|
|
raise ValueError('A phone number, email, or address is required.')
|