
    fe)                        d dl Z d dl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 d dlmZmZ d dlmZ d dlZd dlZd d	lmZ d dlmZ d d
lT 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Zd dlm	Z	 d dlmZ d dlmZ d dlmZmZ d dlZej         e_!        d dl"Z"d dl#Z#d dl$Z$d dl%m&Z& d dlZd dl'm(Z( d dl)m*Z* de+de+de+de,fdZ- e"j.        d          Z/	 d Z0d Z1ed             Z2d Z3d Z4dS )    N)login)reverse)HttpResponseRedirect)View)settings)redirectrender)JsonResponse)
SignupForm)*)csrf_exempt)statuspermissions)Response)APIView)r   )HttpResponser   )PermissionDenied)SimpleNamespace)Web3body	signaturesigning_keyreturnc                     t          j        t          |d          t          | d          t          j                                                  }||k    S )Nutf-8)msg	digestmod)hmacnewbyteshashlibsha256	hexdigest)r   r   r   digests       [/Users/christophesurbier/Documents/Programmation/SellTix/tixsellbackend/backoffice/views.py"is_valid_signature_for_string_bodyr&   %   sT     Xk7##$  .   ikk	      djangoc                 ~   t           j                            |          }|j        }|                     t          dd|j        j        i                    }|                     t          dd|j        j        i                    }t          j	        
                    |||d          }t          |j                  S )Nuser__idstripe-refresh-account-urluuidkwargsstripe-return-account-urlaccount_onboardingaccountrefresh_url
return_urltype)Sellerobjectsgetstripe_user_idbuild_absolute_urir   useridstripeAccountLinkcreater   url)requestr=   selleracct_idr4   r5   	acct_links          r%   "StripeShifterAccountURLRefreshViewrF   S   s    
.

b

)
) ))'2NX^`f`k`nWo*q*q*qrr((1LV\^d^i^lUm)o)o)opp&&#!%	 ' 
 
 	Y]+++r'   c                 $    t          | di           S )Nz	home.html)r	   )rB   s    r%   homerH   d   s    ';+++r'   c                    | j         dk    rt          | j        | j        pd          }t                              d           t                              |           t          j        |          }t          j        |          }|d         }|dk    rZ|d         }d|v rM|d         d         }|d	         d
k    r2|d         }|d         }t          |d         d          }|d         }	|d         }
t                              dt          |          z   dz   |	z   dz   |z              t          j
                            t          |          |	          }|                                ri|dk    rt          d          S |D ]N}|j        j                                        |                                k    rt                              d           Rt                              d           d }	 t"          j
                            |          }t                              d|z             |}n1# t&          $ r$}t                              d           Y d }~nd }~ww xY wt)                      }|j        |_        |j        |_        |j        |_        |                                 ||_        ||_        	 t2          j        }d}t2          j        rd|z   }nd|z   }dd |
gd!d"}d#d#d$}t9          j        |||%          }|j        dk    ret          j        |j                  }|d&         rD|d&         d'         }t@          !                    |          }tE          j#        |d(          }||_        n1# t&          $ r$}t                              |           Y d }~nd }~ww xY w|j$        %                    |           |                                 Pnt                              d)           t          d          S t          d*          S )+NPOSTr   z===On recoit webhook r6   NFT_ACTIVITYeventactivityr   categoryerc721fromAddress	toAddresserc721TokenIdcontractAddresshashz[WebHook] Doit trouver toekn z pour contrat z
 newOwner )ticketId/refTicketType__refEvent__ticketContract__iexact*0x0000000000000000000000000000000000000000   )r   z[WebHook] Same ownerz[WebHook] Different owner)walletAddress__iexactz-[WebHook]user trouve on change association %sz[WebHook] ===Pas de user z&https://matic-mumbai.g.alchemy.com/v2/z'https://matic-mainnet.g.alchemy.com/v2/   z2.0eth_getTransactionByHash)r=   jsonrpcparamsmethodzapplication/json)acceptzcontent-type)jsonheadersresultvalueetheru*   ==== Ticket non trouvé sur le backend !!!i  )&r_   strr   encodingloggerinfora   loadsintTicketr8   filterexistsr   refUserwalletAddresslowerUserr9   	ExceptionTicketHistory	lastOwnerwallet	pricePaidsaver   ALCHEMY_ACCESS_KEYDEBUGrequestspoststatus_codetextfloatfromhexr   from_weiownersadd)rB   payloaddatar6   rL   rM   rP   rQ   rR   rS   txHashtokensticketuserToAssignr<   eticketHistoryapi_keyrA   rb   responsevalueHexrd   
finalPrices                           r%   webhookAlchemyr   g   sQ   ~glG$4$?@@+,,,Gz'""z'""F|MEU"" ,Q/J'11"*="9K ( 5I$'(A!$D$DM&./@&AO%f-FKK ?M@R@R RSc cds s  uA  !A  BK  !K  L  L  L#^22C<N<N  @O2  P  PF}} >R&(TTT$0$<$<$<<&, 8. 8.F%~;AACCY__EVEVVV &,B C C C C &,G H H H .2!L+/<+;+;R[+;+\+\D$*KK0_`d0d$e$e$e37LL'0 !L !L !L$*KK0J$K$K$K$K$K$K$K$K!L 1>8> 57=7G 4:@:J 7 - 2 2 4 4 4/;3< 0!3.6.IG*,C'/~ %`.VW^.^.WX_._ /03839(2L	/& /&G 3E8J/& /&G
 08}SwX_/`/`/`H'/';S'@'@/3z(-/H/H+/> )J7;H~g7NH49MM(4K4KE9=g9V9VJ?IF,<'0 !3 !3 !3$*KKNNNNNNNN!3 !' 1 1- @ @ @ &q8.t $PQQQ 3''''#&&&&s1   2?H22
I <II 8B9M22
N <NN c                    | j         dk    rt          | j                  }|                                r|                                }t                      }||_        t          j        	                    ddddiddid          }t                              d           t                              |           |d	         |_        t          j        |          |_        |                                 |                     t#          d
d|j        i                    }|                     t#          dd|j        i                    }t                              d|z             t                              d|z             t          j        	                    |d	         ||d          }t                              |           |d         }t)          |          S nt                      }t+          | dd|i          S )NrJ   FRexpress	requestedT)card_payments	transfers)countryr6   capabilitiesz===On recoit de stripe r=   r,   r-   r.   r0   zReturn url %szrefresh_url url %sr1   r2   rA   zsignup.htmlform)r_   r   rJ   is_validrx   r7   r<   r>   Accountr@   rh   ri   r:   ra   dumpsstripe_account_jsonr;   r   r=   r?   r   r	   )	rB   r   r<   seller_profiler3   r4   r5   accountLinkurlToRedirects	            r%   signupr      s   ~',''==?? 	799;;D#XXN"&Nn++0;T/BR]_cQdee ,  G
 KK1222KK   ,3DMN)15G1D1DN.!!!!44W=Ybhjnjqar5t5t5tuuK 33G<W`fhlho_p4r4r4rssJKK
2333KK,[8999 !,33'%)	 4  K KK$$$%e,M'666;	7> ||'=64.999r'   c                 2   | j         dk    rt          j                            |          }t          j                            |j                  }|d         r#|d         rd|_        |	                                 t          t          d                    S d S )NGETr*   details_submittedcharges_enabledTrH   )r_   r7   r8   r9   r>   r   retriever:   stripe_charges_enabledrx   r   r   )rB   r=   merchantAccountaccts       r%   !StripeShifterAccountReturnURLViewr      s    ~ .,,b,99~&&'EFF#$ 	#.?)@ 	#37O2  """#GFOO444 r'   )5urllibr{   django.contrib.authr   django.urlsr   django.httpr   django.viewsr   django.confr   django.shortcutsr   r	   r
   r>   ra   backoffice.forms.signupr   tixsellbackoffice.modelsdjango.views.decorators.csrfr   rest_frameworkr   r   rest_framework.responser   rest_framework.viewsr   r   STRIPE_API_KEYr   loggingr   r!   django.core.exceptionsr   typesr   web3r   rf   boolr&   	getLoggerrh   rF   rH   r   r   r    r'   r%   <module>r      s     % % % % % %       , , , , , ,                   - - - - - - - - $ $ $ $ $ $   . . . . . .           4 4 4 4 4 4 . . . . . . . . , , , , , , ( ( ( ( ( (              % % % % % % : : : : : : : : (    3 3 3 3 3 3  ! ! ! ! ! !      	
		,/			 	 	 	 
	8	$	$ B, , ,", , , Y' Y' Y'x$: $: $:N
5 
5 
5 
5 
5r'   