3
QZ	                 @   s8   d dl Z d dlmZ G dd deZG dd deZdS )    N)	QueryDictc               @   s.   e Zd Zd
ddZdd Zdd Zdd	 ZdS )JSONMiddlewareNc             C   s
   || _ dS )zhWe allow next_layer to be None because old-style middlewares
        won't accept any argument.
        N)get_response)selfZ
next_layer r   ?/var/www/html/dls.localhost.com/myproject/dls_api/middleware.py__init__   s    zJSONMiddleware.__init__c             C   s   t d |jjdrd|jjdkr|jjdd}tj|}tddd}xJ|j D ]>\}}t	|t
rx*|D ]}|j||i qjW qR|j||i qRW |jd	kr||_|jd
kr||_|jdkr||_d S )NzHello MCONTENT_TYPEzapplication/jsonzutf-8strict T)mutableGETPOSTPATCH)printMETAgetbodydecodejsonloadsr   items
isinstancelistupdatemethodr   r   )r   requestnew_datadataZq_datakeyvaluexr   r   r   process_request   s"    





zJSONMiddleware.process_requestc             C   s   |S )z:Let's handle old-style response processing here, as usual.r   )r   r   responser   r   r   process_response%   s    zJSONMiddleware.process_responsec             C   s,   | j |}|dkr| j|}| j||}|S )z!Handle new-style middleware here.N)r"   r   r$   )r   r   r#   r   r   r   __call__*   s
    

zJSONMiddleware.__call__)N)__name__
__module____qualname__r   r"   r$   r%   r   r   r   r   r      s   
r   c               @   s   e Zd Zdd Zdd ZdS )CORSMiddlewarec             C   s
   || _ d S )N)r   )r   r   r   r   r   r   7   s    zCORSMiddleware.__init__c             C   s.   | j |}d|d< d|d< d|d< d|d< |S )	N*zAccess-Control-Allow-OriginTz Access-Control-Allow-CredentialszGET,PUT,POST,DELETEzAccess-Control-Allow-MethodszContent-Type, AuthorizationzAccess-Control-Allow-Headers)r   )r   r   r#   r   r   r   r%   :   s    
zCORSMiddleware.__call__N)r&   r'   r(   r   r%   r   r   r   r   r)   6   s   r)   )r   django.httpr   objectr   r)   r   r   r   r   <module>   s   1