mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-11-04 01:47:36 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Example business services module."""
 | 
						|
 | 
						|
 | 
						|
class BaseService:
 | 
						|
    """Service base class."""
 | 
						|
 | 
						|
 | 
						|
class UsersService(BaseService):
 | 
						|
    """Users service."""
 | 
						|
 | 
						|
    def __init__(self, logger, db):
 | 
						|
        """Initialize instance."""
 | 
						|
        self.logger = logger
 | 
						|
        self.db = db
 | 
						|
 | 
						|
    def get_user_by_id(self, uid):
 | 
						|
        """Return user's data by identifier."""
 | 
						|
        self.logger.debug('User %s has been found in database', uid)
 | 
						|
        return dict(uid=uid, password_hash='secret_hash')
 | 
						|
 | 
						|
 | 
						|
class AuthService(BaseService):
 | 
						|
    """Authentication service."""
 | 
						|
 | 
						|
    def __init__(self, logger, db, token_ttl):
 | 
						|
        """Initialize instance."""
 | 
						|
        self.logger = logger
 | 
						|
        self.db = db
 | 
						|
        self.token_ttl = token_ttl
 | 
						|
 | 
						|
    def authenticate(self, user, password):
 | 
						|
        """Authenticate user."""
 | 
						|
        assert user['password_hash'] == '_'.join((password, 'hash'))
 | 
						|
        self.logger.debug('User %s has been successfully authenticated',
 | 
						|
                          user['uid'])
 | 
						|
 | 
						|
 | 
						|
class PhotosService(BaseService):
 | 
						|
    """Photos service."""
 | 
						|
 | 
						|
    def __init__(self, logger, db, s3):
 | 
						|
        """Initialize instance."""
 | 
						|
        self.logger = logger
 | 
						|
        self.db = db
 | 
						|
        self.s3 = s3
 | 
						|
 | 
						|
    def upload_photo(self, uid, photo_path):
 | 
						|
        """Upload user photo."""
 | 
						|
        self.logger.debug('Photo %s has been successfully uploaded by user %s',
 | 
						|
                          photo_path, uid)
 |