o
    &zh                     @   sp   d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ G dd	 d	e	ZdS )
    N)DictOptionalTypeUnion)HttpResponseBadRequest)View)ImmediateHttpResponse)Input)ErrorResponsec                       sz   e Zd ZU dZeeeeee	 f  ee	 f e
d< dZdd Z fddZdd	 Zd
d Zdd Zdd Zdd Z  ZS )RESTViewNinput_classTc                 O   s   | j |g|R i |S N)handle)selfrequestargskwargs r   b/var/www/html/kangema/venv/lib/python3.10/site-packages/allauth/headless/internal/restkit/views.pydispatch   s   zRESTView.dispatchc                    sJ   | j r|jdkr| || _| | j}|r|S t j|g|R i |S )NGET)handle_json_inputmethod_parse_jsondatahandle_inputsuperr   )r   r   r   r   response	__class__r   r   r      s   zRESTView.handlec                 C   s"   | j }t|tr|| jj}|S r   )r   
isinstancedictgetr   r   )r   r   r   r   r   get_input_class   s   
zRESTView.get_input_classc                 C   s   i S r   r   )r   r   r   r   get_input_kwargs!   s   zRESTView.get_input_kwargsc                 C   sR   |   }|sd S |  }|d u ri }|dd|i|| _| j s'| | jS d S )Nr   r   )r#   r$   inputis_validhandle_invalid_input)r   r   r   input_kwargsr   r   r   r   $   s   
zRESTView.handle_inputc                 C   s   t | j|dS )N)r%   )r
   r   )r   r%   r   r   r   r'   0   s   zRESTView.handle_invalid_inputc              	   C   sJ   |j dks|js
d S z
t|jdW S  ttjfy$   tt dw )Nr   utf8)r   )	r   bodyjsonloadsdecodeUnicodeDecodeErrorJSONDecodeErrorr   r   )r   r   r   r   r   r   3   s   zRESTView._parse_json)__name__
__module____qualname__r   r   r   r   strr   r	   __annotations__r   r   r   r#   r$   r   r'   r   __classcell__r   r   r   r   r      s   
 (r   )r+   typingr   r   r   r   django.httpr   django.views.genericr   allauth.core.exceptionsr   (allauth.headless.internal.restkit.inputsr	   *allauth.headless.internal.restkit.responser
   r   r   r   r   r   <module>   s    