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