payment/payment_backend/services/user.py

27 lines
1.1 KiB
Python

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.wallet_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))