mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-10-31 16:07:51 +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)
 |