
    d                        d dl mZ d dlmZmZmZ ddlmZmZm	Z	m
Z
mZ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 d d	lZd d	lZd d
lmZ ddlmZ d dlmZ  edd          Z  edd          Z! edd          Z"da#dZ$d Z%d Z&d Z'd Z(ed             Z)d"dZ*d"dZ+d"dZ,d"dZ-ed             Z.ed             Z/d  Z0d"d!Z1d	S )#    )render)JsonResponseHttpResponseHttpResponseRedirect   )	customerMatressPhysical_Age_FieldPhysical_Age_ValuesAge_analyzeHeight_analyzeWeight_analyze	installerSender)date)csrf_exempt)Email)configN)xframe_options_exempt)
Assets_Api)settingsAPI_KEY 35a15b812a541ac37eeea476dc446242defaultSHARED_SECRET 2551e32b3f42e0a0d16a29788fb23809API_VERSIONz2023-01 c                     d|z   dz   }t           t          | d}t          j        ||          }t	          j        |j                  }|S )z GENERATE ACCESS_TOKEN https://z/admin/oauth/access_token)	client_idclient_secretcode)urljson)r   r   requestspostr&   loadstext)r$   shopursrxs         0C:\Users\Nilesh\Desktop\Matress\matress\views.pytokenr1      sU    	d	8	8B &	 	A
 	"1%%%A
16AH    c                 
   d}| j         dk    ru| j                            d          }|                    d          }t          }|d|dt          dd	          d
}|                    d          }t          |           }|S )Nr   GETr+   /z!/admin/oauth/authorize?client_id=z&redirect_uri=https://tunnelmatress.3iwebexperts.comr   z-/matress/final&scope=read_themes,write_themes)methodr4   getstripr   r   r   )requestredirectr%   s_urlapi_keylinklis          r0   installationrA   -   s    H~koof%%		# @E  @E  @E  GN  GN  GN  PV  W_  iC  PD  PD  PD  PD  PD  EZZ__'200Or2   c                     | j                             d          0| j                             d          }t          d|z   dz             }|S )Nr+   r!   z/admin/apps/sleepzee-custom-app)redirect_to)r4   r9   r   )r;   r+   redirs      r0   r<   r<   ?   sI    {v*{v&&$d1BEf1fgggLr2   c                    t          t                    dk    rt          j                            t                    }|r|d         j        }|d         j        }nt          d           dt          z   dz   }|d|t          t          d}ddd	t          d
d          z  ddi}t          j        |||          }t          j        |j                  }t          t          j        |          d          S d S )Nr   r+   zInvalid shop detailr!   z /admin/api/2020-07/webhooks.jsonzapp/uninstalled)zX-Shopify-Access-TokenzX-Shopify-TopiczX-Shopify-Hmac-Sha256zX-Shopify-Shop-DomainzX-Shopify-API-Versionwebhookzhttps://%s/matress/uninstallr6   r7   r   r&   )topicaddressformat)r%   r&   headerszapplication/json)content_type)lenr+   r   objectsfilteraccess_tokenhmacr   r   r   r'   r(   r&   r)   r*   dumps)	r;   webrecr1   	hmac_datar%   rK   myr.   cs	            r0   unistaller_secondrW   G   s   
4yyA~~"))t)44 	01I*Eq	II.///4"DD ',0%.%)%0
 
 *96(Tn;o;o;op  
 McG<<<JqvDJqMM8JKKKK9 ~r2   c                    | j                             d          %| j                             d          }| j                             d          }| j                             d          a| j                             d          K| j                             d          }t          |          dk    rt          j                            t                    }|r*|d         j        a|d         j        }t          |           S t          |t                    }t          j        t          |d	         
          }d|v r	|d         }nt          d          S t	                      }t          |_        ||_        ||_        ||_        ||_        |d	         |_        |                                 t%          |            t          |           S d S t          j                            t                    }|r;|d         j        }	|d         j        }
|d         j        }t'          | d|
|d          S t          d          S t'          | d          S )NrQ   hostr+   r$   r   rF   )r;   )r$   r+   rP   )r+   r1   owner_emailzDidn't Fecthed Owner Emailz
index.html)r+   rY   zNo Data Foundz
login.html)r4   r9   r+   rM   r   rN   rO   rP   r<   r1   r   	get_emailr   r$   rQ   rY   admin_emailsaverW   r   )r;   rQ   rY   r$   recordget_tknaccesstokenget_owner_emailrec	getaccessgetshopgethosts               r0   finalrf   h   s   {v*{v&&{v&&{v&&;??6"".;??6**D4yyA~~"*11t1<< #5!!9>D$Qi4G#G4444"'T"="="=K&0&:KXfLg&h&h&hO$77*9-*H+,HIII#++C#CH#CH#CH#CH&5CO'2>'BC$HHJJJ &g6666#G4444K ~P &--4-88F 5"1I2	 ). ).g|WW5U5UVVV#O444g|,,,r2   c                    i }t           j                            |           }|r!|dk    rg }d}|3t          j                                                            |          }n=t          j                                                            |d         j                  }|D ]P}|j        |j        |j        |j	        |j
        |j        |j        |j        |j        d	}|                    |           Q||d<   |d         j        |d<   n@|dk    rg }	d}
|3t"          j                                                            |          }
n=t"          j                                                            |d         j                  }
|
D ]>}|j        |j        |j        |j        |j        |j        d	}|	                    |           ?|	|d<   |d         j        |d<   nlg }d}|3t          j                                                            |          }n=t          j                                                            |d         j                  }|D ]}d}d}d}d}d}t"          j                            |j        
          }|rB|d         j        }|d         j        }|d         j        }|d         j        }|d         j        }n
d}d}d}d}d}|j        |j        |j        |j	        |j
        |j        |j        |j        |j        |j        |||||d}|                    |           ||d<   |d         j        |d<   nd|d<   |S )NrF   customerdatar   idr   )	rj   namecontactNumbercityemailagegenderheightweightr+   matress)rj   
matressforgetting_out_of_bed#driving_and_sitting_in_a_car_or_busclimbing_15_to_20_stairs lifting_and_carrying_bag_luggage)customer_id)rj   rk   rl   rm   rn   rp   ro   rq   rr   r   ru   rv   rw   rx   rt   r   zInvalid Shop Detailmessage)r   rN   rO   r   allrj   pkrk   contact_numberrm   rn   ro   rp   rq   rr   appendr+   r	   rt   ru   rv   rw   rx   r   )r+   typerj   	data_dict
check_shop	user_listalluserr/   sub_user_dictmatress_list
allmatresssub_matress_dictcustomer_listallcustomerrt   ru   rv   rw   rx   matress_detailsub_customer_dicts                        r0   get_datar      s   I"))t)44J ^5>!!IG~"*..007727>>"*..0077Z]=M7NN 0 0$6&'&66W5 xhX
! 
!   ////(1In% *1 2IfiLJ~$_002299R9@@

$_002299z!}?O9PP
 6 6$!")*)=:;:_/0/I787Y$ $  ##$45555#/Ii  *1 2IfMK~&.2244;;r;BB&.2244;;AAQ;RR  &8 &8
%'"683+-(240!(!7!7AD!7!I!I! :!/!2!=J)7):)M&:H:K:o7/=a/@/Y,7Ea7H7i44!J)+&:<7/1,794 V&'&6FWh5hhF);:]/G7W!+% %!$ $$%67777$1Ij! *1 2If4	)r2   c                     | j         dk    rU| j                            d          }| j                            d          }t          |||          }t	          |          S d S Nr4   r+   r   r+   r   rj   )r8   r4   r9   r   r   r;   rj   r+   r   datas        r0   get_customer_internalr     s_    ~{v&&{v&&T444D!!!	 r2   c                    i }t           j                            |           }|r|dk    rg }d}|3t          j                                                            |          }n=t          j                                                            |d         j                  }|D ]h}|j        |j        |j        |j	        |j
        |j        |j        |j        |j        |j        |j        |j        |j        d}|                    |           i||d<   |d         j        |d<   ng }	t          j                                        }
|
D ]h}|j        |j        |j        |j	        |j
        |j        |j        |j        |j        |j        |j        |j        |j        d}|	                    |           i||d<   |d         j        |d<   nd	|d
<   |S )NrF   smtpdetailsr   ri   r   )	smtp_shop)	smtp_host	smtp_portsmtp_usernamesmtp_passworduse_tlsemail_template_1email_subject_1email_template_2email_subject_2email_template_3email_subject_3email_template_4email_subject_4r+   zInvalid smtp detailsrz   )r   rN   rO   r   r{   rj   r   r   r   r   r   r   r   r   r   r   r   r   r   r~   r+   )r+   r   rj   	smtp_dictr   	smtp_listallsmtpr/   sub_smtp_dictsmtp_d_listallsmtpdetailssmtp_sub_dicts               r0   	smtp_datar     s   I"))t)44J 25=  IG~ .,,..555<< .,,..55
1@P5QQ 0 0 ! !$%O$%Oi'('9&'&7'('9&'&7'('9&'&7'('9&'&7! !   ////'0Im$ *1 2IfK#^//11N# 2 2 ! !$%O$%Oi'('9&'&7'('9&'&7'('9&'&7'('9&'&7! ! ""=1111'0Im$ *1 2If4	)r2   c                     | j         dk    rU| j                            d          }| j                            d          }t          |||          }t	          |          S d S r   )r8   r4   r9   r   r   r   s        r0   get_smtp_internalr   L  s_    ~{v&&{v&&d"555D!!!	 r2   c                 F   | j         dk    r| j                            d          }t          j                            |          }|r| j                            d          }| j                            d          }| j                            d          }| j                            d          }| j                            d          }| j                            d	          }| j                            d
          }	| j                            d          }
| j                            d          }| j                            d          }| j                            d          }| j                            d          }| j                            d          }t          |||||||	|
||||||d         j                  }|                                 t          d          S t          d          S | j
                            d          }t          | dd|i          S )NPOSTr+   rF   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   smtp_shop_idz"Sender details saved successfully!zShop not found!z	smtp.html)r8   r   r9   r   rN   rO   r   rj   r]   r   r4   r   )r;   r+   r   r   r   r   r   r   r   r   r   r   r   r   r   r   senders                    r0   smtp_detailsr   T  s2   ~|''&--4-88
 	3((55Il&&{33I!,**?;;M!,**?;;ML$$Y//G&|//0BCC%l../@AAO&|//0BCC%l../@AAO&|//0BCC%l../@AAO&|//0BCC%l../@AAOi)R_n{  EL  ^n  N  `p  AP  br  CR  dt  ET  dn  op  dq  dt  u  u  uFKKMMM DEEE 1222{v&&g{F4=999r2   c                    | j         dk    r| j                            d          }t          j                            |          }|r| j                            d          }| j                            d          }| j                            d          }| j                            d          }| j                            d          }| j                            d	          }| j                            d
          }	| j                            d          }
| j                            d          }| j                            d          }| j                            d          }| j                            d          }| j                            d          }t          |||||||	|
t          |d         j        
  
        }|	                                 |r&t          ||||||j        |d         j                  }|	                                 g }i }g }i }|j        }|r3t          |d         j        d|          }|                    |           n1t          |d         j        d          }|                    |           |
rc|D 
]}|}|d         }g }g }g }g }|d         d
         dk     rdn|d         d
         }	t          j                            |	          j        }t          j                            |	          j        } t          j                            |	          j        }!t          j                            |	          j        }"|r|                    |           | r|                    |            |!r|                    |!           |"r|                    |"           |d         d	         dk     rdn|d         d	         }t&          j                            |          j        }#t&          j                            |          j        }$t&          j                            |          j        }%t&          j                            |          j        }&|#r|                    |#           |$r|                    |$           |%r|                    |%           |&r|                    |&           |d         d         dk     rdn|d         d         }
t(          j                            |
          j        }'t(          j                            |
          j        }(t(          j                            |
          j        })t(          j                            |
          j        }*|'r|                    |'           |(r|                    |(           |)r|                    |)           |*r|                    |*           g }+g },g }-g }.t*          j                            d|d         d                   j        }/t,          j                            |/          j        }0t,          j                            |/          j        }1t,          j                            |/          j        }2t,          j                            |/          j        }3|0r"|+                    t/          |0                     |1r|,                    |1           |2r|-                    |2           |3r|.                    |3           t*          j                            d|d         d                   j        }4t,          j                            |4          j        }5t,          j                            |4          j        }6t,          j                            |4          j        }7t,          j                            |4          j        }8|5r"|+                    t/          |5                     |6r|,                    |6           |7r|-                    |7           |8r|.                    |8           t*          j                            d|d         d                   j        }9t,          j                            |9          j        }:t,          j                            |9          j        };t,          j                            |9          j        }<t,          j                            |9          j        }=|:r"|+                    t/          |:                     |;r|,                    |;           |<r|-                    |<           |=r|.                    |=           t*          j                            d|d         d                   j        }>t,          j                            |>          j        }?t,          j                            |>          j        }@t,          j                            |>          j        }At,          j                            |>          j        }B|?r"|+                    t/          |?                     |@r|,                    |@           |Ar|-                    |A           |Br|.                    |B           |                    t1          t3          |+          d                      |                    t1          t3          |,          d                      |                    t1          t3          |-          d                      |                    t1          t3          |.          d                      t1          t3          |          d           |d!<   t1          t3          |          d           |d"<   t1          t3          |          d           |d#<   t1          t3          |          d           |d$<   ||d         d%<   |D ]}Ci d&|Cd&         d|Cd         d|Cd         d|Cd         d|Cd         d|Cd         d	|Cd	         d
|Cd
         d|Cd         d'|Cd'         d|Cd         d|Cd         d|Cd         d|Cd         d|Cd         d%|Cd%         }D|                    |D           
||d<   t5          ||j        (          }Et7          j        ||||E)           t7          j        |||E*           t=          |          S d S t?          d+          S d S ),Nr   r+   rF   rk   rl   rm   rn   rp   ro   rq   rr   ru   rv   rw   rx   rt   r   )
rk   r}   rm   rn   rp   ro   rq   rr   r   shop_id)rt   ru   rv   rw   rx   ry   r   
submissionr   )r+   r   r   n   )rq      )Age(   )rr   )
field_namefield_value)Physical_Age_Field_id   
spine_softspine_medium
spine_firmspine_xfirmresultrj   r   )key)r   tor+   
max_result)r   r+   r   zshop is not available) r8   r   r9   r   rN   rO   r   r   rj   r]   r	   r   r+   r~   r   r   r   r   r   r   r   r
   r   floatroundAveragemaxr   
email_useremail_adminr   r   )Fr;   r+   r   rk   r}   rm   rn   rp   ro   rq   rr   ru   rv   rw   rx   rt   customer_datamatress_datar   
avg_resultfinal_resultresult_dictrj   r   item	item_dict
c_customerr   r   r   r   height_avg_ssheight_avg_smheight_avg_sfheight_avg_sx
age_avg_ss
age_avg_sm
age_avg_sf
age_avg_sxweight_avg_ssweight_avg_smweight_avg_sfweight_avg_sx
phy_age_ss
phy_age_sm
phy_age_sf
phy_age_sxphy_age_g_idphy_age_g_value_ssphy_age_g_value_smphy_age_g_value_sfphy_age_g_value_sxphy_age_d_idphy_age_d_value_ssphy_age_d_value_smphy_age_d_value_sfphy_age_d_value_sxphy_age_c_idphy_age_c_value_ssphy_age_c_value_smphy_age_c_value_sfphy_age_c_value_sxphy_age_l_idphy_age_l_value_ssphy_age_l_value_smphy_age_l_value_sfphy_age_l_value_sxr/   sub_dictmax_keysF                                                                         r0   matress_detailsr   r  s   ~|''&--4-88
 ]	9<##F++D$\--o>>N<##F++DL$$W--E\%%h//F,""5))C\%%h//F\%%h//F!(!1!12F!G!G29,2B2BCh2i2i/'.|'7'78R'S'S$/6|/?/?@b/c/c, )),77J$#1!!!']-  M     	#*#-+=<_1I9Y&3&6",Q-"2$ $ $L  LJLK!B *Z]%7lrRRR##D))))Z]%7lKKK##D)))  a1( W6 W6D $I!*:!6J!#J#%L!#J"$K &0]8%<s%B%BSSTUW_I`F$2$:$>$>f$>$M$M$XM$2$:$>$>f$>$M$M$ZM$2$:$>$>f$>$M$M$XM$2$:$>$>f$>$M$M$YM$ 9"))-888$ ;$++M:::$ 9"))-888$ :#**=999 ",Au!5!:!:""AuAUC!,!4!8!8S!8!A!A!LJ!,!4!8!8S!8!A!A!NJ!,!4!8!8S!8!A!A!LJ!,!4!8!8S!8!A!A!MJ! 6"))*555! 8$++J777! 6"))*555! 7#**:666 %/qM($;b$@$@RRzRS}U]G^F$2$:$>$>f$>$M$M$XM$2$:$>$>f$>$M$M$ZM$2$:$>$>f$>$M$M$XM$2$:$>$>f$>$M$M$YM$ 9"))-888$ ;$++M:::$ 9"))-888$ :#**=999 "$J!#J!#J!#J#5#=#A#AMaoyz{o|  ~R  pS#A  $T  $T  $WL)<)D)H)Ham)H)n)n)y&)<)D)H)Ham)H)n)n){&)<)D)H)Ham)H)n)n)y&)<)D)H)Ham)H)n)n)z&) E"))%0B*C*CDDD) >"))*<===) >"))*<===) >"))*<===#5#=#A#AMr  AK  LM  AN  Ot  Au#A  $v  $v  $yL)<)D)H)Ham)H)n)n)y&)<)D)H)Ham)H)n)n){&)<)D)H)Ham)H)n)n)y&)<)D)H)Ham)H)n)n)z&) E"))%0B*C*CDDD) >"))*<===) >"))*<===) >"))*<===#5#=#A#AMgu  AB  vC  D^  v_#A  $`  $`  $cL)<)D)H)Ham)H)n)n)y&)<)D)H)Ham)H)n)n){&)<)D)H)Ham)H)n)n)y&)<)D)H)Ham)H)n)n)z&) E"))%0B*C*CDDD) >"))*<===) >"))*<===) >"))*<===#5#=#A#AMo  ~H  IJ  ~K  Ln  ~o#A  $p  $p  $sL)<)D)H)Ham)H)n)n)y&(;(C(G(G`l(G(m(m(z&)<)D)H)Ham)H)n)n)y&)<)D)H)Ham)H)n)n)z&) E"))%0B*C*CDDD) >"))*<===) >"))*<===) >"))*<===%%eGJ,?,?&B&BCCC ''gj.A.A!(D(DEEE%%eGJ,?,?&B&BCCC&&uWZ-@-@'C'CDDD/4WZ5H5H/K/KJ|,16w|7L7LQ1O1OJ~./4WZ5H5H/K/KJ|,05gk6J6J10M0MJ}-,6JqM(+' 6 6$ !D'$"AfI$ ,Q-?$ #AfI	$
 $QwZ$ %ak$ "1U8$ %ak$ %ak$ #AfI$ 13G1H$ B1EjCk$ 7:T8U$ ?Bd@e$ )<$  %ak!$$ %++H5555'6* +7J'jjn=== +%dW^____!;TgVVVV $K000Ca1 a1F   7888A  r2   c                 @    t          |           t          |           z  S N)sumrM   )lsts    r0   r   r   Y  s    s88c#hhr2   c                 :   | j         dk    rg| j                            d          }d}d}d}d}d}d}d}	d}
d}d}d}d}d}t          j                            |          }|g k    r|d}	 t          j                            |          }|}|	}	|
}
|}|}|}|}|}nQ# t          j        $ r? t          j	        }t          j
        }t          j        }t          j        }t          j        }Y nw xY w|j        }|j        }|j        }|j        }|j        }|j        }|j        }	|j        }
|j        }|j        }|j        }|j        }|j        }n(d}	 t          j                            |d         j                  }|}|	}	|
}
|}|}|}|}|}nQ# t          j        $ r? t          j	        }t          j
        }t          j        }t          j        }t          j        }Y nw xY w|j        }|j        }|j        }|j        }|j        }|j        }|j        }	|j        }
|j        }|j        }|j        }|j        }|j        }n<t          j	        }t          j
        }t          j        }t          j        }t          j        }t9          |d         j        |||||||	|
|||||d          S )	Nr4   r+   r   rF   )r|   r   )r   )r+   r   r   r   r   r   r   r   r   r   r   r   r   r   )r8   r4   r9   r   rN   rO   r   DoesNotExistr   
EMAIL_HOST
EMAIL_PORTEMAIL_HOST_USEREMAIL_HOST_PASSWORDEMAIL_USE_TLSr   r   r   r   r   r   r   r   r   r   r   r   r   rj   r   r+   )r;   	sender_idr+   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s                     r0   
send_emailr  ]  sL   ~{v&&		&--4-88
$5#^//9/==F'7$&5O'7$&5O'7$&5O'7$&5OO* 5 5 5 ( 3I ( 3I$,$<M$,$@M&4GGG5 #,	",	 & 4 & 4 .#)#: "("8#)#: "("8#)#: "("8#)#: "("8 5#^//z!}?O/PPF&6$&5O'7$&5O'7$&5O'7$&5OO* 5 5 5 ( 3I ( 3I$,$<M$,$@M&4GGG5 #,	",	 & 4 & 4 .#)#: "("8#)#: "("8#)#: "("8#)#: "("8 +I +I$4M$8M,G
1 2	W`r  R_  kr  GW  l{  P`  sB  Vf  {J  ^n  CR  T  T  U  U  Us&   -0B AC,+C,;F AGGr   )2django.shortcutsr   django.httpr   r   r   modelsr   r	   r
   r   r   r   r   r   r   datetimer   django.views.decorators.csrfr   rn   r   decoupler   r'   r&   $django.views.decorators.clickjackingr   
ShopifyApir   django.confr   r   r   r   r+   r_   r1   rA   r<   rW   rf   r   r   r   r   r   r   r   r   r2   r0   <module>r     s   # # # # # # H H H H H H H H H H O  O  O  O  O  O  O  O  O  O  O  O  O  O  O  O  O  O  O  O  O  O       4 4 4 4 4 4 # # # # # #               F F F F F F " " " " " "             &$F
G
G
G0RSSSf]I666	
    $  L L LB :- :- :-zc c c cJ" " " "6 6 6 6p" " " " : : :: a9 a9 a9L  YU YU YU YU YU YUr2   