20 lines
		
	
	
		
			641 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			641 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| """OAuth Base views"""
 | |
| from typing import Callable, Optional
 | |
| 
 | |
| from passbook.sources.oauth.clients import BaseOAuthClient, get_client
 | |
| from passbook.sources.oauth.models import OAuthSource
 | |
| 
 | |
| 
 | |
| # pylint: disable=too-few-public-methods
 | |
| class OAuthClientMixin:
 | |
|     "Mixin for getting OAuth client for a source."
 | |
| 
 | |
|     client_class: Optional[Callable] = None
 | |
| 
 | |
|     def get_client(self, source: OAuthSource) -> BaseOAuthClient:
 | |
|         "Get instance of the OAuth client for this source."
 | |
|         if self.client_class is not None:
 | |
|             # pylint: disable=not-callable
 | |
|             return self.client_class(source)
 | |
|         return get_client(source)
 | 
