o
    "4g[                     @   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                       sr   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  ZS )RESTViewNinput_classTc                 O   s   | j |g|R i |S N)handle)selfrequestargskwargs r   p/var/www/html/authentication-server/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   i S r   r   )r   r   r   r   get_input_kwargs   s   zRESTView.get_input_kwargsc                 C   sh   | j }t|tr|| jj}|sd S |  }|d u ri }|dd|i|| _| j s2| 	| jS d S )Nr   r   )
r   
isinstancedictgetr   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&   ,   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   /   s   zRESTView._parse_json)__name__
__module____qualname__r   r   r   r   strr   r	   __annotations__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    