from loguru import logger 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_wallet_addresses(self, name=None, phone=None, email=None, payment_method=None): if phone or email: logger.debug(f'query wallet addresses by phone {phone} or email {email}') users = self.user_repo.get_and_update(User(name=name, phone=phone, email=email, payment_method=payment_method)) addresses = set(user.address for user in users if user.wallet_address) return list(addresses) return [] def update_or_create(self, name=None, phone=None, email=None, wallet_address=None, payment_method=None): self.user_repo.get_and_update(User(name=name, phone=phone, email=email, wallet_address=wallet_address, payment_method=payment_method))