
    g                         d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZmZmZ  G d de      Z G d	 d
e      Zej!                  e      Z ej                   e      Zy)    N)settings)HttpResponseHttpResponseBadRequest)ImmediateHttpResponse)get_adapter)OAuth2AdapterOAuth2CallbackViewOAuth2LoginViewc                   V    e Zd ZdZdZd Zd Zed        Zed        Z	ed        Z
d Zy	)
ShopifyOAuth2Adaptershopify,c                     | j                   j                  j                  dd      }d|vrdj                  |      }t	        j
                  d|      st        t        d            |S )Nshop .z{}.myshopify.comz^[a-z0-9-]+\.myshopify\.com$zInvalid `shop` parameter)requestGETgetformatrematchr   r   )selfr   s     j/var/www/django_project/virt/lib/python3.12/site-packages/allauth/socialaccount/providers/shopify/views.py_shop_domainz!ShopifyOAuth2Adapter._shop_domain   sc    ||##FB/d?%,,T2D xx7>'&'AB      c                 F    | j                         }dj                  ||      S )Nzhttps://{}{})r   r   )r   pathr   s      r   	_shop_urlzShopifyOAuth2Adapter._shop_url    s#      "$$T400r   c                 $    | j                  d      S )Nz/admin/oauth/access_tokenr   r   s    r   access_token_urlz%ShopifyOAuth2Adapter.access_token_url$   s    ~~9::r   c                 $    | j                  d      S )Nz/admin/oauth/authorizer!   r"   s    r   authorize_urlz"ShopifyOAuth2Adapter.authorize_url(   s    ~~677r   c                 $    | j                  d      S )Nz/admin/shop.jsonr!   r"   s    r   profile_urlz ShopifyOAuth2Adapter.profile_url,   s    ~~011r   c                 :   ddj                  |j                        i}t               j                         j	                  | j
                  |      }|j                         }|d   j	                  d      }|r||d<   | j                         j                  ||      S )NzX-Shopify-Access-Tokenz{token})token)headersresponseassociated_user)	r   r)   r   get_requests_sessionr   r'   jsonget_providersociallogin_from_response)	r   r   appr)   kwargsr*   r+   
extra_datar,   s	            r   complete_loginz#ShopifyOAuth2Adapter.complete_login0   s    +Y-=-=EKK-=-PQM..044T5E5Ew4W 	 ]]_
 ,001BC,;J()  "<<WjQQr   N)__name__
__module____qualname__provider_idscope_delimiterr   r   propertyr#   r%   r'   r4    r   r   r   r      sX    KO1 ; ; 8 8 2 2	Rr   r   c                        e Zd Z fdZ xZS )ShopifyOAuth2LoginViewc                 >   t        t        di       j                  di       j                  dd      }|rWt        |   |g|i |}	 dj                  ddj                  |j                        d	f      }t        |
      }d|_	        |S t        |   |g|i |S )NSOCIALACCOUNT_PROVIDERSr   IS_EMBEDDEDFr   z:<!DOCTYPE html><html><head><script type="text/javascript">z#window.top.location.href = "{url}";)urlz$</script></head><body></body></html>)contentT)
getattrr   r   superdispatchjoinr   rA   r   xframe_options_exempt)r   r   argsr2   is_embeddedr+   js	__class__s          r   rE   zShopifyOAuth2LoginView.dispatch=   s    H7<SBS& 	
  w'A$A&AH S9@@X\\@R:B $B/H-1H*Ow9$9&99r   )r5   r6   r7   rE   __classcell__)rK   s   @r   r=   r=   <   s     :  :r   r=   )r   django.confr   django.httpr   r   allauth.core.exceptionsr   allauth.socialaccount.adapterr   ,allauth.socialaccount.providers.oauth2.viewsr   r	   r
   r   r=   adapter_viewoauth2_loginoauth2_callbackr;   r   r   <module>rU      sa    	   < 9 5 *R= *RZ!:_ !:H &223GH1$112FGr   