o
    Re                     @   s  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 d d	l Z d dl!m"Z" e"e#$ j%j%Z&dZ'dZ(dZ)dZ*da+dZ,dd Z-dd Z.edd Z/eedd Z0dd Z1dd Z2edd  Z3d!d" Z4ed#d$ Z5d5d%d&Z6d5d'd(Z7d5d)d*Z8d5d+d,Z9ed-d. Z:ed/d0 Z;d1d2 Z<d5d3d4Z=d	S )6    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)Path 2bea07cbbdad54e61b2bc97336154ee8 864c0ec4d01c24eef80f4712fcfb6bffz2023-07zdev.sleepezee.com c                 C   s
   t | dS )Nzlanding_page.htmlr   request r   !/var/www/Matress/matress/views.pylogin"   s   
r    c                 C   s6   d| d }t t| d}tj||d}t|j}|S )z GENERATE ACCESS_TOKEN https://z/admin/oauth/access_token)	client_idclient_secretcode)urljson)API_KEYSHARED_SECRETrequestspostr&   loadstext)r$   shopursrxr   r   r   token'   s   r2   c                 C   sz   |  d}d|v sd|v r$|}t}d||tf }| d}t| }|S d| }t}d||tf }| d}t| }|S )N/r!   http://b%s/admin/oauth/authorize?client_id=%s&redirect_uri=https://%s/final&scope=read_themes,write_themes)stripr'   APP_URLr   )r%   s_urlf_urlapi_keylinkliredirectr   r   r   get_installation5   s   




r>   c                 C   s   d}| j dkrH| jd}|d}d|v sd|v r1|}t}d||tf }|d}t| }|S d| }t}d||tf }|d}t| }|S )Nr   POSTr-   r3   r!   r4   r5   )methodr?   getr6   r'   r7   r   )r   r=   r%   r8   r9   r:   r;   r<   r   r   r   installationH   s"   





rB   c                 C   s2   | j dd ur| j d}td| d d}|S )Nr-   r!   z/admin/apps/sleepzee-custom-app)redirect_to)GETrA   r   )r   r-   redirr   r   r   r=   `   s   r=   c           	      C   s   t tdkrQtjjtd}|r|d j}|d j}ntd dt d }|d|ttd}ddd	t	d
dd ddi}t
j|||d}t|j}tt|d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/uninstalltunnelzmatress.3iwebexperts.com)defaultr&   )topicaddressformat)r%   r&   headerszapplication/json)content_type)lenr-   r   objectsfilteraccess_tokenhmacr   API_VERSIONr   r)   r*   r&   r+   r,   dumps)	r   webrecr2   	hmac_datar%   rM   myr0   cr   r   r   unistaller_secondh   s.   
	rZ   c                 C   sf  | j dd ur| j d}| j d}| j da| j dd ur| j d}t|dkrtjjtd}|rF|d ja|d j}t| dS t	|td}t
jt|d	 d
}d|v r^|d }ntdS t }t|_||_||_||_||_|d	 |_|  t| d t| dS d S tjjtd}|r|d j}	|d j}
|d j}t| d|
|dS ttS t| dS )NrS   hostr-   r$   r   rF   r   )r$   r-   rR   r-   r2   owner_emailzDidn't Fecthed Owner Emailz
index.html)r-   r[   z
login.html)rD   rA   r-   rO   r   rP   rQ   rR   r=   r2   r   	get_emailr   r$   rS   r[   admin_emailsaverZ   r   r>   )r   rS   r[   r$   recordget_tknaccesstokenget_owner_emailrec	getaccessgetshopgethostr   r   r   final   sH   






(



ri   c                 C   sz   | j dkr;| jd}t| tjj|d}t| |r7tj|d j	|d j
d}t|d  td|d iS tdS d S )NrD   r-   rF   r   r\   themesshop invalid)r@   rD   rA   printr   rP   rQ   r   	get_themer-   rR   r   r   )r   r-   
check_shopdatar   r   r   	theme_api   s   
rp   c                 C   sL  | j dkr| jd}| jd}| j}ttd d#}t|d|d t|d|d t|d|d td	|d W d    n1 sAw   Y  | jd
}tjj	|d}t| |rt
j|d j|d jd}t|d d d d t
j|d j|d j|d t
j|d j|d j|d t
j|d j|d j|d tdhS tdS d S )Nr?   r-   print_output.txtazall_data ....183filezshop ....184zshop_get...185z------------------------theme_idrF   r   r\   rj   r   id)r-   r2   ru   zstatus:successrk   )r@   r?   rA   rD   openBASE_DIRrl   r   rP   rQ   r   rm   r-   rR   set_cssset_js
set_liquidr   r   )r   r-   shop_getall_datafru   rn   ro   r   r   r   theme_integration   s,   

r   c                 C   sb  i }t jj| d}|r+|dkrZg }d}|d ur"tj j|d}ntj j|d jd}|D ]}|j|j|j|j	|j
|j|j|j|jd	}|| q0||d< |d j|d< |S |dkrg }	d}
|d urptj j|d}
ntj j|d jd}
|
D ]}|j|j|j|j|j|jd	}|	| q~|	|d< |d j|d< |S g }d}|d urtj j|d}ntj j|d jd}|D ][}d}d}d}d}d}tjj|jd
}|r|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}|| q||d< |d j|d< |S d|d< |S )NrF   customerdatar   rv   r   )	rv   namecontactNumbercityemailagegenderheightweightr-   matress)rv   
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)rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   zInvalid Shop Detailmessage)r   rP   rQ   r   allrv   pkr   contact_numberr   r   r   r   r   r   appendr-   r	   r   r   r   r   r   r   )r-   typerv   	data_dictrn   	user_listalluserr1   sub_user_dictmatress_list
allmatresssub_matress_dictcustomer_listallcustomerr   r   r   r   r   matress_detailsub_customer_dictr   r   r   get_data   s   I
4



r   c                 C   <   | j dkr| jd}| jd}t|||d}t|S d S NrD   r-   r   r-   r   rv   )r@   rD   rA   r   r   r   rv   r-   r   ro   r   r   r   get_customer_internalY     
r   c                 C   s  i }t jj| d}|r|dkrg }d}|d ur"tj j|d}ntj j|d jd}|D ]X}i 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|jd|jd|jd|jd|j|j|j|j|jd}|| q0||d< |d j|d< |S g }	tj }
|
D ]X}i 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|jd|jd|jd|jd|j|j|j|j|jd}|	| q||d< |d j|d< |S d|d< |S )NrF   smtpdetailsr   r   r   )	smtp_shop	smtp_host	smtp_portsmtp_usernamesmtp_passworduse_tlsspine_soft_template_userspine_soft_subject_userspine_medium_template_userspine_medium_subject_userspine_firm_template_userspine_firm_subject_userspine_xfirm_template_userspine_xfirm_subject_userspine_soft_template_adminspine_soft_subject_adminspine_medium_template_adminspine_medium_subject_admin)spine_firm_template_adminspine_firm_subject_adminspine_xfirm_template_adminspine_xfirm_subject_adminr-   zInvalid smtp detailsr   )r   rP   rQ   r   r   rv   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   rv   	smtp_dictrn   	smtp_listallsmtpr1   sub_smtp_dictsmtp_d_listallsmtpdetailssmtp_sub_dictr   r   r   	smtp_datab  s   	
!
	
r   c                 C   r   r   )r@   rD   rA   r   r   r   r   r   r   get_smtp_details  r   r   c                 C   sh  | j dkr| jd}| j}ttd d}td|d t|d|d t|d|d W d    n1 s5w   Y  tjj|d	}|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}| jd}| jd}| jd}| jd}| jd}| jd}| jd}| jd}t	jj|d j
d }|r t	jj|d j
d jd=i d!|d"|d#|d$|d%|	d&|
d'|d(|d)|d*|d+|d,|d-|d.|d/|d0|d1|d2|d3|d4|d5|}td6S t	d=i d!|d"|d#|d$|d%|	d7|d j
d&|
d'|d(|d)|d*|d+|d,|d-|d.|d/|d0|d1|d2|d3|d4|d5|}|  ttd d }td|d t|d8|d t|jd9|d W d    td:S 1 sw   Y  td:S td;S | jd}t| d<d|iS )>Nr?   r-   rq   rr   /...............................................rs   zall_data ....404zshop ....405rF   smtpHostsmtpPortsmtpUsersmtpPassword
smtpUseTLSsoftTemplateUsersoftSubjectUsermediumTemplateUsermediumSubjectUserfirmTemplateUserfirmSubjectUserxFirmTemplateUserxFirmSubjectUsersoftTemplateAdminsoftSubjectAdminmediumTemplateAdminmediumSubjectAdminfirmTemplateAdminfirmSubjectAdminxFirmTemplateAdminxFirmSubjectAdminr   smtp_shop_idr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   z$Sender details update  successfully!r   zsender ....436zsender ....437z"Sender details saved successfully!zShop not found!z	smtp.htmlr   )r@   r?   rA   rw   rx   rl   r   rP   rQ   r   rv   updater   r`   r   rD   r   )r   r-   r}   r~   rn   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   chengesenderr   r   r   save_smtp_details  s`   
r   c           G      C   s|  t td d&}td|d t| jd|d t| jd|d t| jd|d W d    n1 s0w   Y  | jdkr<| jd	}tjj	|d
}|r8| 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d
}|  |rt||||||j|d jd}|  g }i }g }i }|j}|rt|d jd|d}|| nt|d jdd}|| |r6|D ]}|}|d }g }g }g }g }|d d dk rdn|d d }
tjj|
d j} tjj|
d j}!tjj|
d j}"tjj|
d j}#| r=||  |!rE||! |"rM||" |#rU||# |d d d!k r`d!n|d d }	tjj|	d"j}$tjj|	d"j}%tjj|	d"j}&tjj|	d"j}'|$r||$ |%r||% |&r||& |'r||' |d d d#k rd#n|d d }tjj|d$j}(tjj|d$j})tjj|d$j}*tjj|d$j}+|(r||( |)r||) |*r||* |+r||+ g },g }-g }.g }/tjjd|d d d%j}0tjj|0d&j}1tjj|0d&j}2tjj|0d&j}3tjj|0d&j}4|1r6|,t|1 |2r>|-|2 |3rF|.|3 |4rN|/|4 tjjd|d d d%j}5tjj|5d&j}6tjj|5d&j}7tjj|5d&j}8tjj|5d&j}9|6r|,t|6 |7r|-|7 |8r|.|8 |9r|/|9 tjjd|d d d%j}:tjj|:d&j};tjj|:d&j}<tjj|:d&j}=tjj|:d&j}>|;r|,t|; |<r|-|< |=r|.|= |>r|/|> tjjd|d d d%j}?tjj|?d&j}@tjj|?d&j}Atjj|?d&j}Btjj|?d&j}C|@r#|,t|@ |Ar+|-|A |Br3|.|B |Cr;|/|C |tt|,d' |tt|-d' |tt|.d' |tt|/d' tt|d'|d(< tt|d'|d)< tt|d'|d*< tt|d'|d+< ||d d,< |D ]Z}Di d-|Dd- d|Dd d|Dd d|Dd d|Dd d|Dd d|Dd d|Dd d|Dd d.|Dd. d|Dd d|Dd d|Dd d|Dd d|Dd d,|Dd, }E||E qq||d< t||jd/}Ft td d}td|d t|d0|d td1|d W d    n	1 sw   Y  tj ||||Fd2 tj!|||Fd3 t"|S d S t#d4S d S )5Nrq   rr   r   rs   zrequest.method ....zrequest.POST ....zrequest.GET ....r?   r-   rF   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   shop_id)r   r   r   r   r   r   r   
submissionr   )r-   r   r   n   )r      )Age(   )r   )
field_namefield_value)Physical_Age_Field_id   
spine_softspine_medium
spine_firmspine_xfirmresultrv   r   )keyzresult_dict ....zresult_dict  ....)r   tor-   
max_result)r   r-   r   zshop is not available)$rw   rx   rl   r@   r?   rD   rA   r   rP   rQ   r   r   rv   r`   r	   r   r-   r   r   r   r   r   r   r   r   r
   r   floatroundAveragemaxr   
email_useremail_adminr   r   )Gr   r~   r-   rn   r   r   r   r   r   r   r   r   r   r   r   r   r   customer_datamatress_datar   
avg_resultfinal_resultresult_dictrv   ro   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_sxr1   sub_dictmax_keyr   r   r   matress_details  s  	

"



"



"















	
  ( r+  c                 C   s   t | t|  S N)sumrO   )lstr   r   r   r     s   r   c                 C   s  | j dkr| jd}d}d}d}d}d}d}d}	d}
d}d}d}d}d}d}d}d}d}d}d}d}d}tjj|d}|g kr|d urd}zQtjj|d}tj|dd}|	}	tj|
dd}
|}tj|dd}|}tj|dd}|}tj|dd}|}tj|dd}|}tj|dd}|}tj|dd}|}W n tj	y   t
j}t
j}t
j}t
j}t
j}Y nw |j}|j}|j}|j}|j}tj|jdd}|j}	tj|jdd}
|j}tj|jdd}|j}tj|jdd}|j}tj|jdd}|j}tj|jdd}|j }tj|j!dd}|j"}tj|j#dd}|j$}nd}zTtjj|d j%d	}tj|dd}|	}	tj|
dd}
|}tj|dd}|}tj|dd}|}tj|dd}|}tj|dd}|}tj|dd}|}tj|dd}|}W n tj	y   t
j}t
j}t
j}t
j}t
j}Y nw |j}|j}|j}|j}|j}tj|jdd}|j}	tj|jdd}
|j}tj|jdd}|j}tj|jdd}|j}tj|jdd}|j}tj|jdd}|j }tj|j!dd}|j"}tj|j#dd}|j$}nt
j}t
j}t
j}t
j}t
j}t&i d|d j'd
|d|d|d|d|d|d|	d|
d|d|d|d|d|d|d|d||||||dS )NrD   r-   r   rF   )r   T)quoter   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   )(r@   rD   rA   r   rP   rQ   r   htmlescape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   r   r   r   r   r   r   r   r   rv   r   r-   )r   	sender_idr-   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rn   r   r   r   r   email_configs  s   



r9  r,  )>django.shortcutsr   django.httpr   r   r   modelsr   r	   r
   r   r   r   r   r   r   datetimer   django.views.decorators.csrfr   r   r   decoupler   r)   r&   $django.views.decorators.clickjackingr   
ShopifyApir   django.confr   r0  pathlibr   __file__resolveparentrx   r'   r(   rT   r7   r-   rb   r    r2   r>   rB   r=   rZ   ri   rp   r   r   r   r   r   r   r+  r   r9  r   r   r   r   <module>   s^    ,
!
=


e
	
H
2
 p