o
    &d                    @   s   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	m
Z
 d dlmZ d dl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 d dlmZ d dlmZmZ d dlZd dl Z!d dl"Z"d dl#m$Z$m%Z% d dl&m'Z' d dl(m)Z)m*Z*m+Z+ zd dl,m-Z- W n e.y   d dl/m-Z- Y nw d dl0m1Z1 d dl2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9 d dl:m;Z;m<Z<m=Z= d dl>m?Z? d dl@mAZAmBZBmCZC d dlDmEZEmFZF d dlGmHZH d dlImJZJmKZKmLZLmMZMmNZNmOZOmPZP d dlQmJZRmKZSmLZTmMZUmOZVmPZW d dlXmZ d dlmYZY d dlZZZd dl[m\Z\m]Z] d d l^m_Z_m`Z` d d!lambZb d d"lcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZt d d#lumvZvmwZwmxZxmyZy d d$lzmvZ{mwZ| d d%l}m~Z~mZmZmZ d dl:m;Z;m<Z<m=Z= d dl>m?Z? d d&l}m~Z~mZmZmZmZ d d'lmZ d d(lmZmZ d d)lmZ d d*lmZmZmZ d d+lmZ d dlZd dlZd d,lmZ d dlmZ d d-lmZ d d.lmZmZmZmZmZ d d/l6m7Z7m9Z9m8Z8 d d0lmZ d d1lmZ d dlmZ d d2lmZ d d3lmZ d d4lmZ d5d6 Z7d7d8 Zd9d: Zd;d< Zd=d> Zdd?d@ZeddAdBZddCdDZddEdFZddGdHZe;dIdJge<eefeddKdLZe;dIdJge<eefedMdN ZdOdP ZdQdR Ze;dIdJge<eefedSdT Ze;dIdJge<eefedUdV Ze;dIdJge<eefedWdX Ze;dIdJge<eefedYdZ Ze;dIdJge<eefed[d\ Ze;dIdJge<eefed]d^ Zd_d` Zdadb Zdcdd Ze;dIdJge<eefededf Ze;dIdJge<eefedgdh Zdidj Ze;dIdJge<eefedkdl Ze;dIdJge<eefedmdn ZeF dodp Zee;dJge=eYjfdqdr Zee;dJge=eYjfdsdt Z	 eF dudv ZeF dwdx Zee;dJge=eYjfdydz Ze;dIdJge<eefed{d| Ze;dIdJge<eefed}d~ Ze;dIdJge<eefedd Zdd Zdd Ze;dIdJge<eefedd Zdd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Zedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Zd dlmZ edd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedddZe;dIdJge<eefedd Zedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefedd Ze;dIdJge<eefeddÄ Ze;dIdJge<eefeddń Ze;dIdJge<eefeddǄ Ze;dIdJge<eefeddɄ Ze;dIdJge<eefedd˄ Ze;dIdJge<eefedd̈́ Zddτ Ze;dIdJge<eefeddф Ze;dIdJge<eefeddӄ ZddՄ Ze;dIdJge<eefeddׄ Zddل Zddۄ Zdd݄ Zdd߄ Ze;dIdJge<eefedd Zedd Ze;dIdJgedd ZdS )    N)datetime)	MIMEImage)redirect)IntegrityError
connection)F)settings)	exceptionchoice)	parse_qsl)get_templatestatus)csrf_exempt)logout)make_passwordcheck_password)cachescache)model_to_dict)RequestContextContextloader)logger)ObjectDoesNotExist)JsonResponseHttpResponseRedirectHttpResponse)	send_mailEmailMessageEmailMultiAlternatives)api_viewauthentication_classespermission_classes)Response)OAuth1OAuth1SessionOAuth2)load_backendpsa)	_do_login)Plan
PlanRatingDraftedPlan
PlanVideosPlanSession	PlanGoalsSelectedAbilities)r,   r-   r.   r/   r1   r2   )permissions)BASE_DIRPAGING_ROWS)OrganizationCampainUrls)AuthResponseSerializer)UserUserAddress	UserPhotoFitnessProfiletrainerProfiletrainerVideosgoals
UserfollowInvitationsSocialProfileAccountDetailsUserReferral	UserLikesUserPlateWeightUsersValidSessionsCampaignDetailsNews_letter)UserPlanUserTestPlanUserSetsUserExercise)rJ   rK   )StartFitAuthenticationSessionAuthenticationStartFitSessionUtilAuthResponse)rN   rO   rP   rQ   IsAuthenticated)never_cache)render_to_stringr   )date)r   	timedeltatime)relativedelta)rV   )CampaignFeed)CountryPriceMappingPriceConversion
AppVersion
TmaxLookup)r   r!   r    )MIMEMultipart)MIMEText)
officeMail)timezone)GeoIP2c                 C   s8   d}d}d}d}t ||||g}||d |  d S )NException Detailszadmin@stratfit.netzsoubhik.g@stratfit.coz<p>,dfgkdfj slkjg dlfgj gj</p>z	text/html)r!   attach_alternativesend)requestsubject
from_emailto_emailmessagemsg rm   xC:\Users\DELL\Desktop\soubhikg1894-stratfit-d75d91182fa3\soubhikg1894-stratfit-d75d91182fa3\services\Subscriber\views.pyr   P   s   r   c                 C   sZ   t | d t |d t | t | d}d}||| |t d}td|}t||| d S )Nz+++++z============rd   zerrors@stratfit.co)URLRequestZUserIDErrorTimezexceptiondetails.html)printr   nowrT   ra   )userrequrlerrrh   rj   ctxrk   rm   rm   rn   exceptionMailY   s   


rz   c              
      s  zji }g  t jd}tjj|d d r!tdddW S  fdd}fd	d
}|d }t	j
 }|||}| }W d    n1 sKw   Y  tj|||fd}	|	  tdd|d  d dW S  ty }
 ztd tdt|
iW  Y d }
~
S d }
~
ww )Nutf-8emailr|   F'Account with this E-Mail already existssuccessrk   c                    s  d}d| v r=| d dkr=| d }t | tjdddj|d}| r:|D ]}|d }|d }||kr8|}d}q&nd}nd}|dkrJtdd	d
S tjj| d d r\tddd
S d| v re| d }nd}d| v rp| d }	nd}	tjjd| d | d | d |d}
d| v r| d dkr| d |
_	nd|
_	d| v r| d dkrd|
_
nd|
_
d| v r| d dkr| d |
_|	dkr|	|
_d| v r| d dkr| d |
_d| v r| d dkr| d |
_|
  |
j}||
_||
_|
  ddd tdD }t|}	 d}tjj|d }|j}|rtjj||jd!}|  ntjj|d"d!}|  tjj|
jd }| rCtjj|d#}d$|_|  dd%d tdD }t|}tjj||dd&}|  |
}|} |  |  S )'NTreferalcode iduser_idreferralCode)r   FzInvalid Referral Coder   r|   r}   r~   password123abcphone   fname)userType
first_namer|   usernamereferUser_idcurrencytypeUSDcompanyZpink   lnameip
deviceTypec                 s       | ]}t d V  qdS 
0123456789Nr
   .0irm   rm   rn   	<genexpr>       z*register.<locals>.store.<locals>.<genexpr>   Indianamer   country   r      c                 s   r   r   r
   r   rm   rm   rn   r      r   r   r   r   )rs   rD   objectsvaluesfilterexistsr   r9   createcurrencyType
company_id	last_namer   r   r   saver   createdBy_idmodifiedBy_idjoinrangestrrZ   getdialCoder:   rA   r|   r   append)userObjDataZ
referalMsgr   refdtZrcodeZruseridZrefferedUseridpasswdr   userDatauserId
randomCoderandr   	countryIDcounrtycodeuserCountryZinvitedUsersZ
updateUserrandomCode1	randcode1userrefvidataZrandnumdatarm   rn   storet   s   








zregister.<locals>.storec                    s   t d | d }| d }tjj|jd}|jd t| d  }t|	d} j
d }d| d	 | }d
}	|j}
|j||d}td|}t|	||
 ||_t||_| d |_d|_|  tjj|jd}|j}|S )NZasdfghjr   r   r   #ascii	HTTP_HOSThttp://zE/services/services/stratservices/subscriber/accountValidateNew1?code=zAccount Activationr   linkr   zemailverfication.htmlr   )rs   r9   r   r   r   r|   r   base64	b64encodeencodeMETAr   rT   ra   
secretCoder   r   otp	is_activer   r<   r   )r   r   cr   instanceSubsecret_code_plainsecret_code_encodevalidateLinkr   rh   rj   ry   rk   fitnessprofiler   rg   rm   rn   mail   s4   




zregister.<locals>.mailr   targetargsTz; Account Created successfully, please check your mail. Use r   zas OTPsomething wrongrl   )jsonloadsbodydecoder9   r   r   r   r   
concurrentfuturesThreadPoolExecutorsubmitresult	threadingThreadstart	Exceptionr   r	   r   )rg   r   r   r   r   r   executorfuturecidt2erm   )r   rg   rn   registerl   s*   k)

r   c              
   C   s   dd l }z\t| jd}tjj|d d}|r^|j}|	dd }|	dd }t
t|  d }dt| d }|t| | }	|	|_|  |j}
tjj|
d	 }td
|	iW S W d S  ty } ztd tdt|iW  Y d }~S d }~ww )Nr   r{   r|   r}   @r   i  .r   rk   r   rl   )rW   r   r   r   r   r9   r   r   r|   splitintroundr   r   r   rB   r   deleter   r   r   r	   )rg   rW   r   r   r|   Z	New_emailZnewemailZ	milli_secZ
append_strZMailIDsocialr   rm   rm   rn   New_Mail  s,   
r   c              
   C   s   t | jd}t| z0tjj|d d}| r6tjj	|d |d d}d|_
|  tddd	W S td
dd	W S  ty] } ztd td
t|d	W  Y d }~S d }~ww )Nr{   r   r   r|   )r   r|   r   TValid Emailr   FInvalid OTPProblem with Update User)r   r   r   r   rs   r9   r   r   r   r   r   r   r   r	   r   errorr   )rg   r   instancer   r   rm   rm   rn   validateOTP/  s   
r  c              
   C   s   | j dkrtddiS | j dkr_t| jd}z%tjj|d dj|d d	}|	 r6td
dddW S tddddW S  t
y^ } ztd tdt|dW  Y d }~S d }~ww tddiS )NGETrk   6Please use POST with applicable JSON for login servicePOSTr{   r|   r}   coder  Tz	valid otpr   )r   rk   r   Fr  r   zProblem with ionic otpr   )methodr   r   r   r   r   r9   r   r   r   r	   r   r  r   )rg   formatr   r  r   rm   rm   rn   ionicotpvalidateA  s   


r  c                 C   s   | j d }t| tjj|dddd}| rZ|D ]<}|d }|d }|dkr/td  S tjj|d}d|_	|
  d	}|j}	d
|ji}
td|
}t|||	 td  S d S tddiS )Nr  r}   r   r   r   r   zhttp://stratfit.net/pkWelcome to StratFitr   welcome.htmlMessagez"Please Provide a valid Information)r  rs   r9   r   r   r   r   r   r   r   r   r|   r   rT   ra   r   )rg   r  r   r   r   useridZactiveStatus
updateuserrh   rj   ry   rk   rm   rm   rn   accountValidateNewR  s*   

r  c           
   
   C   sR  d}t }| jdkrtddiS | jdkrt| jd}zezt|d  t	  W n t
jy<   tdd	d
 Y W S w t|d d}|dd}t jj|d dj|d d}| r{t jj|d d}d|_|  tdd|d dW S tddd
W S  ty }	 ztd tdt|	d
W  Y d }	~	S d }	~	ww tddiS )Nr|   r  rk   r	  r
  r{   r  Fz
Wrong Coder   r   r   r   r   r}   r   Tr  r   rk   r|   6Sorry, This is not a valid information, contact admin.r  )r9   r  r   r   r   r   r   r   	b64decoders   binasciirq   r   r   r   r   r   r   r   r	   r   r  r   )
rg   r  lookup_fieldmodelr   
codeDecodecodeDecodeSplitr  r   r   rm   rm   rn   accountValidatel  s8   



r   c              
   C   s\  d}t }| jdkrtddiS | jdkr,t| jd}zt jj|d dj|d d	}|	 rt jj
|d d}d
|_td |  t }||j}|}	t|	 zt jj
|d d}
|
j}t|
j 	 |
jd urd| jd< |
j| jd< |
j| jd< |
j| jd< |
j| jd< ti dddddg dg dg dg ddddddddd|d d|d d|
jd|d|
jd|
jd |
j|
j|
jd!W W S W W d S  ty } ztd"dd# t }d$|_d%|_tdt|d&W  Y d }~W S d }~ww tdd'd&W S  ty+ } ztd( tdt|d&W  Y d }~S d }~ww d S ))Nr|   r  rk   r	  r
  r{   r}   r  r  r   zhere IamTloggedInr   r   is_superuserr   Logged In successfullyprofiler?   tmaxplansisProfileSetF	isGoalSet	isPlanSet	isTmaxSetsessiontokenuserDetailsr   r   r   )r   r   Login attempt failed with usersafe  Invalid_Credentialsr   r  r  )r9   r  r   r   r   r   r   r   r   r   r   r   rs   r   rN   authenticater|   r   sessionr   r"  r   r   rQ   r  rk   r   r	   r   r  )rg   r  r  r  r   r  r   stratauthenticationloginResponseuserDataObjquerysetr   r   authResponserm   rm   rn   accountValidateOTP  sZ   




 
r9  c                    s2  d}t }| jdkrtddiS | jdkrt| jd}t jj|d dj	}g   fdd	}d
d }t
j }|||}	|	 }
W d    n1 sPw   Y  tj||
fd}|  |
d }t jj|d d}| rt jj|d d}t|d |_d|_|  td|dS tdddS d S )Nr|   r  rk   r	  r
  r{   r}   c                    s   j dkr3d}tjj| d}d}|j}d|ji}td|} |  |  |  |  S d}tjj| d}d}|j}d|ji}td	|} |  |  |  |  S )
Nr   z>Your Password Changed Successfully,LogIn with your credentialsr   zChange Passwordr   zchangepassword.htmlz:Your Password Set Successfully,LogIn with your credentialsr  r  )r   r9   r   r   r|   r   rT   r   )r  pwdMsgZuserdetrh   rj   ry   rk   subdeatailsZmailinfoZsubscriberPwdrm   rn   store3  s2   










zresetPwd.<locals>.store3c                 S   s0   | d }| d }| d }t d t||| d S )Nr   r   r   Zhherrefdvvvvvdghhhhbv)rs   ra   )inforh   rk   rj   rm   rm   rn   mail3  s
   zresetPwd.<locals>.mail3r   r   r   r   Tr   FzNo Valid Email)r9   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rg   r  r  r  r   r  r=  r?  r   r   r>  r   r:  subscriberExistr  rm   r<  rn   resetPwd  s6   

!
rA  r  r
  c              
   C   sV  t  }|| }|d }d}d}zr|d kr{d}t}| jdkr%tddiW S | jdkrtt| jd}	tj	j
|	d	 d
}
|
 rltj	j|	d	 d
}t|	d |jrdt|	d |_|  tdddW S tdddW S tdddW S tddiW S tdddW S  ty } ztd t|||t| tdt|iW  Y d }~S d }~ww )Nr   r  zThttp://alpha.stratfit.net/services/services/stratservices/subscriber/changePassword/r|   rk   r	  r
  r{   r   r   ZoldPasswordZnewPasswordTz&Password has been changed successfullyr   FzYour old password is incorrectzUser not foundUser logged outr   rl   )rP   get_user_insessionr9   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   rz   r   )rg   r  stratsessionutilr   ru   rv   rw   r  r  r   r@  r  r   rm   rm   rn   changePassword  s<   



rE  c                 C   sB  zt | jd}t }| jdd ur|| }|d }tj	j|d}|j
}tj	dj|jdddd	d
ddddd	}d}i }	i }
i }| rl|D ]}t|}
|
d d krk|
d |
d< |
d d|
d< d}qNtj	j|jd }d}| rd}|D ]}t|}	qtj	j|jdjddgd }d}d}d}g }g }tj	j|jd}|j}| rvd}d}|D ]}t|}tj	dddj|d dddddd d!d"d#d$d%d&d'd(d)d*d+}|D ]Z}t|}|d' d,ks|d' d-krtj	j|d( d}t|d% d. tt|j
d/ t|j  d0 |d%< qtj	j|d) d}t|d% d. tt|j
d/ t|j  d0 |d%< q||d1< || qtj	j|jdd2d3d4d5ddd6d7d8d9d:d;d<d=}| rvd}|D ]}t| t|}|| qet|j 	 |jd urd| jd>< |j| jd< |j| jd:< |j
| jd?< |j | jd@< t!i dAddBdCdD|
dE|	d6|dF|dG|dH|dI|dJ|dK|dL dM|dN|dO|j
dP|jd@|j dQ|j"|j|j#|j|j$|j%|j&|j'|||j|j(|j)dRW S W d S t!ddSdTW S  t*y  } zt+,dU t!dVt|iW  Y d }~S d }~ww )WNr{   HTTP_AUTHORIZATIONr|   r}   User__idr   genderdobheight
heightUnitweight
weightUnituser_id__iduser_id__emailuser_id__first_nameFdob1%Y/%m/%dTru   r   r   
status__inr   	Goals__idProgramType__idplan_idr   planName	planPhotocreatedBy__first_namecreatedBy__last_namepriceduration_weeksabilityplanGoal__goalNameplanDescriptionprogramType__programTypeNamelicencePolicyr   originalPlanner_idiosPrice	iosStatus3White-Label<br><h6>Copyright &copy; 2017  . All rights reserved.</h6>r>  createdDateexerciseId_idexerciseId_id__exerciseNameexerciseNamer%  
updateTmax
updateTypeupdatedDater   userplan_id
workWeightworkoutTestDater!  r   r"  r   rk   r#  r$  r?   r&  r'  r(  r)  r*  r+  Zutokkenr,  r   r   r   r   )r   r   orgIdavatarr   r   r   orgNameisFreeTrailr|   	phonecode
coverImagerB  r   r   rl   )-r   r   r   r   rP   r   r   rC  r9   r   r   r<   select_relatedr   r   r   r   dictstrftimer?   rJ   r6   organization_idgymNamer,   r   r   r   rK   rs   r|   r3  r"  r   r   r   rw  r   r   r   	phoneCode	userCoverr   r   r	   )rg   Z	usertokenrD  ru   Zuemailr7  r   fitProQuerySetr'  dataGoalObj
dataFitObjdataTmaxObjr   goalDetailsr(  PlanDetailsr)  r*  ry  r&  tmaxArr	orgValuesrx  planObj	planInfosdtpplanInfopartnerName	coachNametmaxDetailsr   rm   rm   rn   ionicloginchecking,  s   
,
 
@660



r  c           F      C   sx  t | }| jdkr:zt| jd}| jdd |d< tj	jdd}|j
}d|v rtd d	|v rS|d	 dkrStd
 tj	j|d d}td d|_|  t }||}|}z|d dkrd|v rutdd|d dW W S td|d dW W S tj	j|d d d}	|	j}
|	jdks|	jd krd|v r|d dkr|d |	_|	  tj	jdd}tj	jdd}tj	dj|	jddddddd d!d"d#d$
}d}i }i }i }| r|D ]}t|}|d d krd%}|d |d&< |d d'|d< qtj	j|	jd( }d}| r!d%}|D ]}t| t|}t| qtj	j|	jd(jdd)gd* }tj	j|	jd}d}d}g }g }d%}| rd}d%}|D ]R}t|}tj	j|d+ d, }t j	d-d.dj|d+ dd/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdF}t|j! | r|D ]}t|} t"j	dGj| d/ d,dH}!d}"|!D ]}#t|#}$|"dI|$dH  7 }"q|"dkr|"dd  }%nd}%t#j	dJj| d/ d,dK}&d}'|&D ]}#t|#}$|'dI|$dK  7 }'q|'dkr|'dd  }(nd}(|(| dL< |%| dM< |(| d5< |%| d<< | dB dNks| dB dOkr?tj	j| d@ d})t$| d7 dP t$t$|)jdQ t$|)j%  dR | d7< n#tj	j| dA d}*t$| d7 dP t$t$|*jdQ t$|*j%  dR | d7< dS| dT< dU| dV< || dW< t|dX d|v r|d dYkr|j&dZkr|d d[ d\kr| dE | d3< | dE | d]< | dE | dC< n| dC | d3< | dC | d]< t'| d3 dkrd^| d3< q|d d[ d\krt(j	 j| dE d_}+nt(j	 j| dC d_}+|+D ]},t|,}-|-d` }.q|.| d3< |d d[ d\kr| dE | dC< t'| d3 dkr
d^| d3< qt'| d3 dkrd^| d3< q|j&dZkrJ|d d[ d\kr=| dF | d3< | dF | d]< | dE | dC< nK| d3 | d3< | d3 | d]< n>|d d[ d\krnt(j	j| dE d_}+| dF | d3< | dF | d]< |+j)| dC< nt(j	j| dC d_}+|+j)| dC< | d3 | d3< | d3 | d]< t*| d3 dkrd^| d3< q| |da< |+| qNt,j	j|	jd(dbdcddded/d+dfdgdhdidjdkdldm}/|/ rd%}|/D ]}t| t|}|+| qt|	j- 	 t.j	j|	j/d}0|0j0}1t1j	j|	jd }2|2 r|2D ]"}3t|3}4|4dn }5t23|5 t1j	j|4d/ d}6|do |6_4|6  qnt1j	j5|	j|do dp}7|7  t67 }8dq}9|88|9 t9|8}:g };|:D ]}<t|<}=|;+|= q<t|	j t:|	j|;}>tdr |>g kr|;D ])}?|?d/ }@d}A|>D ]}B|Bds |@kr||Bdt |?du< d%}Aqi|Adkrd|?du< qiq_|	j-d urd%| j;dv< |	j-| j;d< |	j| j;dj< |	j| j;dw< |	j<| j;dx< ti dy|;dzd%dd{d||d<|df|d}|d~|d|d|d|d|d do|do d|d d d|
d|	jd|	j=i d|	j%dx|	j<d|	jdj|d d/ d|	j>d|	j/d|	j?d|	j@d|1d|d|d d d|d d d|	j-d|d d d|d d d|jAd|jAddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddg
ddiddiddiddiddiddiddiddiddig	dddddddddddddd)ddddddgdddddddddd)dddd)dddd)ddddddddddgddW W S W W d S  tBy }C ztdt$|CiW  Y d }C~CW S d }C~Cww tF }E|E| }
|
d urd}nd}tG|W S  tBy9 }C ztdt$|CiW  Y d }C~CS d }C~Cww d S )Nr
  r{   REMOTE_ADDR	remote_ipr   r   r|   	CAME HEREskip
CAME HERE1r}   
CAME HERE2r   Falser   Fr   rk   r   r   rk   r   r,  r   r   r   rG  r   rH  rI  rJ  rK  rL  rM  rN  rO  rP  trainingLevelTrQ  rR  rS  r   rT  rX  rX  rV  rW  r   rY  r[  r\  r]  r^  r_  r`  ra  rb  
planStatusnum_of_periodsnum_of_sessionsr?   rZ  programType_idcreatedBy__avatarr   rd  rc  re  rf  indianIosPriceindianPricePlanPurposesplanGoal_id__GoalName, PlanAbilitiesability_id__abilityplanPurpose
plan_goalsrg  rh  ri  rj  rk  ztxEOSIcMc4genWarmupVideo2esZzqjO5CccooldownVideo	planUsersuserDataOBJiosINRr   X   	planPriceFreeinrusdr>  rl  rm  rn  ro  r%  rp  rq  rr  r   rs  rt  ru  sessionTokenr+  r   r  a:  SELECT *,uae.id AS advexId,ue.id as id,uv.videoLink as video_id__videoLink FROM `utility_exercise` ue LEFT JOIN `utility_advexercises` uae ON ue.id = uae.exercise_id LEFT JOIN `utility_videos` uv ON uv.id = ue.video_id WHERE ue.id IS NOT NULL AND ue.accessLevel = 0 AND ue.exerciseStatus =1 ORDER BY ue.exOrder ASCz	Here I AMexIdtmaxValdefaultTmaxr!  r   r"  	Exercisesr   r#  r$  r&  r'  r(  r)  r*  r  r   r   privacyr   r   rv  rw  r   rx  ry  r   r   rz  r  r{  r  androidVersion
iosVersionHip Circles   Not ApplicableBothNameRepsZExTimeZ	DirectionZ	EquipmentKnee Circles
   Standing lower back release
Roll oversFire Hydrant CirclesEach leg / DirectionFoam Rolling - Back   Foam RollerIT BandEach leg	Adductors!Ball Rolling (Cricket / Baseball)30	Each sideCricket / BaseballArm Swings - Over underr   FLoor Quadraceps StretchFloor Glute Stretch!Neck, Back, and Hamstring StretchClassic Hamstring StretchShoulders and Biceps StretchLower Back StretchFrog StretchCat StretchTriceps and Lat Reach Stretch2   ZSetsr  	intensity   <   r   F   P   Z   ZstrengthZ	explosivegeneralWarmupCooldownexerciseWarmuprl   r-  r.  r0  r1  Invalid Username Or Password{"result":"success"}{"result":"failure"})Hr   r  r   r   r   r   r   r   r\   r   inrValuers   r9   r   r   rN   r2  r   r   r   r]   r<   r|  r   r   r   r   r}  r~  r?   rJ   countr,   queryr1   r2   r   r   r   r   r[   r  floatr   rK   r|   r6   r  r  rG   r   r   r  r   r   cursorexecutedictfetchalldefaultTmaxValuesr3  r"  userPrivacyr   rw  r   versionr   rQ   r  rk   rO   r%   )Frg   contextjsonDcurrencyValuesr  r  r4  r5  r6  r7  r   androidversion
iosversionr  r'  r  r  r  r   r  r(  r  userCurrencyr)  r*  r&  r  ry  r  downloadUsersr  r  r  planPurposesValpurposesvalvalObj	planGoalsplanAbilityValabilitieslistsplanAbilitiesr  r  usdValuer  usdObj	dollarValr  r  rx  usersessionssesssessObjsessKeyupdatesessioncreateUserSessxallExecDetailsresultQueryPlanExercisesdt7	dataExObjr  ex1r  	firstTempdexr   r8  sessionAuthenticationrm   rm   rn   	userLogin}  s  


.
 

P




64


0









 | 


 r  c           :      C   s
  t | }| jdkrhzAt| jd}| jdd |d< tj	jdd}|j
}d|v r6td d	|v rS|d	 dkrStd
 tj	j|d d}td d|_|  t }t|d ||}t|d |}z|d dkrd|v rtdd|d dW W S td|d dW W S tj	j|d d d}	|	j}
|	jdks|	jd krd|v r|d dkr|d |	_|	  tj	jdd}tj	jdd}tj	dj|	jddddd d!d"d#d$d%d&
}d}i }i }i }| r|D ]}t|}|d d krd'}|d |d(< |d d)|d< qtj	j|	jd* }d}| r-d'}|D ]}t| t|}t| qtj	j|	jd*jdd+gd, }tj	j|	jd}d}d}g }g }d'}| rd}d'}|D ]O}t|}tj	j|d- d. }t j	d/d0dj|d- dd1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdH}t|j! i }|D ]} t| }t"j	dIj|d1 d.dJ}!d}"|!D ]}#t|#}$|"dK|$dJ  7 }"q|"dkr|"dd  }%nd}%t#j	dLj|d1 d.dM}&d}'|&D ]}#t|#}$|'dK|$dM  7 }'q|'dkr|'dd  }(nd}(|(|dN< |%|dO< |(|d7< |%|d>< |dD dPks$|dD dQkrHtj	j|dB d})t$|d9 dR t$t$|)jdS t$|)j%  dT |d9< n#tj	j|dC d}*t$|d9 dR t$t$|*jdS t$|*j%  dT |d9< dU|dV< dW|dX< ||dY< t|dZ d|v r|d d[kr|j&d\kr|d d] d^kr|dG |d5< |dG |d_< |dG |dE< n|dE |d5< |dE |d_< t'|d5 dkrd`|d5< q|d d] d^krt(j	 j|dG da}+nt(j	 j|dE da}+|+D ]},t|,}-|-db }.q|.|d5< |d d] d^kr|dG |dE< t'|d5 dkrd`|d5< qt'|d5 dkr$d`|d5< q|j&d\krS|d d] d^krF|dH |d5< |dH |d_< |dG |dE< nK|d5 |d5< |d5 |d_< n>|d d] d^krwt(j	j|dG da}+|dH |d5< |dH |d_< |+j)|dE< nt(j	j|dE da}+|+j)|dE< |d5 |d5< |d5 |d_< t*|d5 dkrd`|d5< q||dc< |+| qZ	 t,j	j|	j-d}/|/j.}0t/j	j|	jd }1|1 r|1D ]"}2t|2}3|3dd }4t01|4 t/j	j|3d1 d}5|de |5_2|5  qnt/j	j3|	j|de df}6|6  	 |	j4d urd'| j5dg< |	j4| j5d< |	j| j5dh< |	j| j5di< |	j6| j5dj< ti dkd'ddldm|d>|dn|do|dp|dq|dr|ds|ds de|de d|d d dt|
du|	jdv|	j7dw|	j%dj|	j6i d|	jdh|d d1 dx|	j8dy|	j-dz|	j9d{|	j:d||0d}|d~|d d~ d|d d d|	j4d|d d d|d d d|j;d|j;dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddg
dddiddiddiddiddiddiddiddiddig	W W S W W d S  t<y5 }7 ztdt$|7iW  Y d }7~7W S d }7~7ww t@ }9|9| }
|
d urFd}nd}tA|W S  t<yg }7 ztdt$|7iW  Y d }7~7S d }7~7ww d S )Nr
  r{   r  r  r   r   r|   r  r  r  r}   r  Z-hddddddddddddddddddddddddddddddddddddddddddddZ[kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkiiiiiiiiiiiiiiiiiiiiiiir   r  r   Fr   rk   r  r   r,  r   r   r   rG  r   rH  rI  rJ  rK  rL  rM  rN  rO  rP  r  TrQ  rR  rS  r   rT  rX  r  rV  rW  r   rY  r[  r\  r]  r^  r_  r`  ra  rb  r  r  r  r?   rZ  r  r  r   rd  rc  re  rf  r  r  r  r  r  r  r  r  r  rg  rh  ri  rj  rk  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'  r(  r)  r*  r  r   r   r  r   r   rv  rw  r   rx  ry  r   r   rz  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  r  r  r   r  r  r  r  r  r  r  r  r  rl   r-  r.  r0  r1  r  r  r  )Br   r  r   r   r   r   r   r   r\   r   r  rs   r9   r   r   rN   r2  r   r   r   r]   r<   r|  r   r   r   r   r}  r~  r?   ProgramUserPlanr  ProgramPlanr  ProgramPlanGoalsProgramSelectedAbilitiesr   r   r   r   r[   r  r  r   r6   r  r  rG   r   r   r  r   r|   r3  r"  r  r   rw  r   r  r   rQ   r  rk   rO   r%   ):rg   r  r  r  r  r  r4  r5  r6  r7  r   r   r  r  r'  r  r  r  r   r  r(  r  r  r)  r*  r&  r  ry  r  r  r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  rx  r  r  r  r  r  r  r   r8  r  rm   rm   rn   userLoginNewj  s~  




.

 

P



64





 


 r$  c                 C   sV   | j dd }| j   | jd }|d }t| d| j _t|  t	ddiS )Nr   rF  r   Tr   )
r3  r   flushr   r   r   r   modifiedr   r   )rg   ru   authkeyrm   rm   rn   logOut^  s   

r)  c                 C   s  t  }|| }|d }d}d}z|d kr| jdr|d }ztjdj|d}d}|D ]}t|}q.d|v rYtj	ddd	d
ddddddddddddddddj|d}	nt
jddddddd d!j|d"}	|	D ]}t|}
tjj|d }|D ]}t|}|d# |
d$< q}qltj	dddd%d&j|d}g }|D ]}t|}|| qt|
|d'W W S  ty } ztd(t|d)W  Y d }~W S d }~ww W d S  ty } ztd* t|||t| td+t|iW  Y d }~S d }~ww ),Nr   r  zsubscriber/editprofile/r   r   r   rG  user__first_nameZuser__emailZuser__middle_nameZuser__phoneZuser__phoneCodeZuser__qualificationZuser__referenceZuser__last_nameaddress1address2towncitystater   zipCodetimeZoneZuser__avatarZuser__currencyTypeZuser__userCoverr   r   r|   r   rw  r   r  r  aboutTrainerabout
socailName	socialUrl)r   Z
socialdataFr   r   rl   )rP   rC  r3  __contains__r:   r   r   r   r}  r|  r9   r=   rB   r   r   r   r   r   r	   rz   )rg   rD  r   ru   rv   rw   ZUAZ	dataCountr   r,  dataObjZ
trainerInftrtrObjZsocialprfinfoZ	socialArrdt1Z	socialObjr   rm   rm   rn   editProfilep  sR   

@"  
r;  c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krtjj|d d}d|d v r6|d d |_	|d d |_
d|d v rJ|d d |_|d d	 |_|d d
 |_|d d |_d|d v r~|d d dkr~|d d d kr~t|d d |_d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_|  tjj|jddd	}d|d v rtjj|d d }	|	 r|	D ]}
t|
}tjj|d d}|d d |_|  qntjj|d |d d d}|  |D ]}t|}qtjj|d d}| r<tjj|d d}d|d v rO|d d dkrO|d d d krO|d d |_d|d v ro|d d dkro|d d d kro|d d |_d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_ d|d v r|d d dkr|d d d kr|d d |_!d|d v r|d d dkr|d d d kr|d d |_"d|d v r|d d dkr|d d d kr|d d |_#d|d v r/|d d dkr/|d d d kr/|d d |_$|  t%dd|dW S tjj|jd}d|d v r[|d d dkr[|d d |_d|d v rr|d d dkrr|d d |_ d|d v r|d d dkr|d d |_!d|d v r|d d dkr|d d |_"d|d v r|d d dkr|d d |_#d|d v r|d d dkr|d d |_d|d v r|d d dkr|d d |_d|d v r|d d dkr|d d d kr|d d |_$|  t%dddW S t%dd dW S  t&yA } zt'(d! t)|||t*| t%d"t*|iW  Y d }~S d }~ww )#Nr   r{   zsubscriber/profile/r   currencyuserInfr   middle_namer   r   r  pwordr   qualification	referencer3  r   )r   r2  r+  r,  r-  r.  r/  r   r0  r1  Tz% User Information Saved Successfully )r   rk   detailsr   Fz User logged out r   rl   )+rP   rC  r   r   r   r   r9   r   r   r   r   r>  r   r   r  r   r   r@  rA  r   r   r   r   r=   r   r}  r2  r   r:   r+  r,  r-  r.  r/  r   r0  r1  r   r   r   r	   rz   r   )rg   rD  r   ru   userInforv   rw   userInformationr,  trainerDetailsr8  r9  ZupdateTrainerZtrainerValuesr  r   useraddressExistuserAdressInformatioinr   rm   rm   rn   profileSettings  s   

,,,


22222222       2
rH  c              
   C   s  t  }|| }|d }|}t| jd}|}d}zt|d |d krt|d t|d }t|D ]}	d|d |	 v r}|d |	 d }
|d |	 d }d|d |	 d	 v ra|d |	 d	 }n
d|d |	 d	  }t	j
j|
d
}||_||_|  q4d|d |	 vr|d |	 d }d|d |	 d	 v r|d |	 d	 }n
d|d |	 d	  }t	|d}||_||_|  q4tdddW S tdddW S  ty } ztd t|||t| tdt|iW  Y d }~S d }~ww )Nr   r{   subscriber/socialmediainfo/z---login userid----Z1234567Z	socialinfr4  r   r5  r  httpr   Tz+User Social Information Saved Successfully r   Fuser logged outr   rl   )rP   rC  r   r   r   r   rs   lenr   rB   r   r   r4  r5  r   r   r   r   r	   rz   r   )rg   rD  r   r  ru   ZsocInforv   rw   Z	rangeDatar   r   Z
socialtyper5  ZdupsocailinfZ	socialurlZ	socailinfr   rm   rm   rn   socialmediainfo  sV   




rM  c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krtd tjj	|d}|j
}d|v rk|d dkrktjj	|d}	d	|v rL|d	 d
krL|d	 |	_d|v r[|d d
kr[|d |	_|	  tdd|	j|	jdW S d	|v rz|d	 d
krz|d	 |_d|v r|d d
kr|d |_|  tdd|j|jdW S tdddW S  ty }
 ztd t|||t|
 tdt|
iW  Y d }
~
S d }
~
ww )Nr   r{   rI  in Herer   gymTr  imager   coverzImage Uploaded Successfully)r   rk   rw  rQ  FrK  r   r   rl   )rP   rC  r   r   r   r   rs   r9   r   r   r  r6   logor{  r   r   rw  r  r   r   r	   rz   r   )rg   rD  r   ru   r   rv   rw   Z	picUploadrv  Z	orgUpdater   rm   rm   rn   uploadphoto.  s@   





rS  c           	   
   C   s   t  }|| }|d }t| jd}|}d}z)|d kr;tjj|d d}|	 r3t
dddW S t
dd	dW S t
dd
dW S  tyj } ztd t|||t| t
dt|iW  Y d }~S d }~ww )Nr   r{   zsubscriber/profilecheck/r   Tz User Already Exist r   FzNew UserrB  r   rl   )rP   rC  r   r   r   r   r<   r   r   r   r   r   r   r	   rz   r   )	rg   rD  r   ru   Z	user_datarv   rw   rF  r   rm   rm   rn   profilecheckS  s&   

rT  c              
      s  t jd}|}d}tjj|d d}zMg  | r\ fdd}fdd}tj	
 }|||}|  W d    n1 sCw   Y  tj| fd	}	|	  td
ddW S tdddW S  ty }
 ztd tdt|
iW  Y d }
~
S d }
~
ww )Nr{   zsubscriber/forgotPwdr|   r}   c                    sJ   t jj| d d}ddd tdD } |  | td  S )Nr|   r}   r   c                 s   r   r   r
   r   rm   rm   rn   r   z  r   z4forgotPassword.<locals>.storedata.<locals>.<genexpr>r   hi)r9   r   r   r   r   r   rs   )r   r   r   )r   rm   rn   	storedatax  s   

z!forgotPassword.<locals>.storedatac                    s   | d }| d }|j d t| }t|d} jd }d| d |d }d	}|j }|j|t|d
}	td|	}
t	||
| 	 ||_
t||_|  td |S )Nr   r   r   r   r   r   z/#/accountvalidate/r{   zPassword Recoveryr   zforgot.htmlZhihe)r|   r   r   r   r   r   r   r   rT   ra   r   r   r   rs   )r   r   r   r   r   r   r   rh   rj   ry   rk   r   rm   rn   maildata  s(   


z forgotPassword.<locals>.maildatar   T*Please Check Your E-Mail to Reset Passwordr   Fz%Email not registered, please registerr   rl   )r   r   r   r   r9   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   )rg   r   rv   rw   ZuserinfrV  rW  r   r   r   r   rm   )r   rg   rn   forgotPasswordo  s,   

rY  c                 C   s   t | jd}tjj|d d}|j}t| tt	
 tdd  |t	
 tdd kr5tddiS d|j d	 |j d
 }d}|j}t||| 	 tdddS )Nr{   r|   r}   x   secondsrk   zplease wait for 2 minutes<p>Dear ,</p><br/> <p>The OTP is: </p>Welcome To StratFitTrX  r   )r   r   r   r   r9   r   r   rr  rs   rb   rt   rV   r   r   r   r|   ra   )rg   r   r   createdTimemailContentrh   rj   rm   rm   rn   	resendOTP  s   rc  c              
   C   s"  t | jd}tjj|d d}|j}t| tt	
 tdd  zM|t	
 tdd kr7tddiW S dd	 }d
d }tj }|||}| }W d    n1 sYw   Y  tj||fd}	|	  tdddW S  ty }
 ztd tdt|
iW  Y d }
~
S d }
~
ww )Nr{   r|   r}   rZ  r[  rk   zPlease wait for 2 minutesc                 S   s6   d| j  d | j d }d}| j}t||| 	 | jS )Nr]  r^  r_  r`  )r   r   r|   ra   )r   rb  rh   rj   rm   rm   rn   r     s   zresendOTP1.<locals>.mailc                 S   s   | j r| jS d S N)r|   r   )r   rm   rm   rn   response  s   zresendOTP1.<locals>.responser   Tz-One Time Passcode has been sent to your Emailr   r   rl   )r   r   r   r   r9   r   r   rr  rs   rb   rt   rV   r   r   r   r   r   r   r   r   r   r   r   r	   r   )rg   r   r   ra  r   re  r   r   r   t1r   rm   rm   rn   
resendOTP1  s,   

rg  c              
   C   s   t  }|| }|d }d}d}z|d krt| jd}d|v rQ|d dkrQd|v rQ|d dkrQt|d }t| t|d }t| |d | }	|| }
ntj	
 }|}
t }d	}|| t|}t|}||	|
 }t }|D ]V}t|}|d
 d kr|d
 d|d
< |d d kr|d d|d< |d d kr|d d|d< |d d kr|d d|d< |d d kr|d d|d< || qvt||dW S W d S  ty } ztd t|||t| tdt|iW  Y d }~S d }~ww )Nr   r  zsubscriber/userDetails/r{   rowsr   pager   a'  SELECT *,Subscriber_user.id as id FROM `Subscriber_user` left join Subscriber_useraddress on Subscriber_user.id = Subscriber_useraddress.user_id left join StratFitOrganization_organization on Subscriber_user.organization_id = StratFitOrganization_organization.id ORDER BY Subscriber_user.id DESCdate_joined%d/%m/%Y %H:%M:%Srr  rl  
last_loginmodifiedDaterh  totalr   rl   )rP   rC  r   r   r   r   r   rs   r9   r   allr   r  r  r  rL  listr}  r~  r   r   r   r   r	   rz   r   )rg   rD  r   ru   rv   rw   ZpInforh  ri  offsettotfoodr  usersr  ro  r   dataArrr   r7  r   rm   rm   rn   r,    sZ   
(


$
r,  c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krt| jd}t| d|v r<ddkr<t|d }nt}d|v rMddkrMt|d }nd}|d | }	|| }
t	
 }d}d	|  v rjdkrn nd
}d|d	 v r}|d	 d dksd|d	 v r|d	 d dksd|d	 v r|d	 d dksd|d	 v r|d	 d dksd|d	 v r|d	 d dksd|d	 v r|d	 d dkr|d7 }d}d|d	 v r|d	 d dkr|dt|d	 d  d 7 }d|d	 v r|d	 d dkr|dt|d	 d  d 7 }d|d	 v r!|d	 d dkr!|dt|d	 d  d 7 }d|d	 v r?|d	 d dkr?|dt|d	 d  d 7 }d|d	 v r]|d	 d dkr]|dt|d	 d  d 7 }d|d	 v r|d	 d dkrt|d	 d d |d|d	 d  d 7 }nd}|r|d d }|d }t| || t|}t|}||	|
 }t }|D ]h}t|}|d |d< |d  |d< |d! d kr|d! d"|d!< |d# d kr|d# d"|d#< |d$ d kr|d$ d"|d$< |d% d kr |d% d"|d%< |d& d kr|d& d"|d&< || qt||d'W S W d S  tyJ } ztd( t|||t| td)t|iW  Y d }~S d }~ww )*Nr   r{   zsubscriber/search/rh  r   ri  r   Fr   a  SELECT *,Subscriber_user.id as id FROM `Subscriber_user` left join StratFitOrganization_organization on Subscriber_user.organization_id = StratFitOrganization_organization.id left join Subscriber_useraddress on Subscriber_user.id = Subscriber_useraddress.user_id r   r   r|   r   r  r   z where Tz first_name like'%z%' ANDz last_name like '%z email like'%z phone like'%z gymName like'%Z1234566z is_active ='z' ANDa  SELECT *,Subscriber_user.id as id FROM `Subscriber_user` left join StratFitOrganization_organization on Subscriber_user.organization_id = StratFitOrganization_organization.id left join Subscriber_useraddress on Subscriber_user.id = Subscriber_useraddress.user_idz! ORDER BY Subscriber_user.id DESCr   r   rj  rk  rr  rl  rl  rm  rn  r   rl   )rP   rC  r   r   r   r   rs   r   r5   r   r  r   r  r  rL  rq  r}  r~  r   r   r   r   r	   rz   )rg   rD  r   ru   Z
searchDatarv   rw   rh  ri  rr  rs  r  fieldsru  ZsearchQueryr  ro  r   rv  r   r7  r   rm   rm   rn   
userSearch  s   

     
A
ry  c                    s&   dd | j D   fdd|  D S )z'Return all rows from a cursor as a dictc                 S   s   g | ]}|d  qS )r   rm   )r   colrm   rm   rn   
<listcomp>i  s    z dictfetchall.<locals>.<listcomp>c                    s   g | ]	}t t |qS rm   )r}  zip)r   rowcolumnsrm   rn   r{  j  s    )descriptionfetchall)r  rm   r~  rn   r  g  s   
r  c           
   
   C   s   t  }|| }|d }d}d}z1|d kr:| jd}| jd }tjj|d}|D ]	}||_|	  q)t
ddiW S t
d	d
dW S  tyi }	 ztd t|||t|	 t
dt|	iW  Y d }	~	S d }	~	ww )Nr   r  zsubscriber/galleryuploadZuploadedFiler   r   r   TFrB  r   r   rl   )rP   rC  FILESgetlistr3  r;   r   r   photor   r   r   r   r	   rz   r   )
rg   rD  r   ru   rv   rw   filesZ	userphotofiler   rm   rm   rn   galleryuploado  s.   



r  c              
   C   s
  t  }|| }|d }t| jd}|}d}z|d kr(d|v rtd tjj	|d d}||_
|d |_d|v rO|d dkrO|d d krO|d |_d	|v rd|d	 dkrd|d	 d krd|d	 |_d
|v ry|d
 dkry|d
 d kry|d
 |_d|v r|d dkr|d d kr|d |_|d |_d|v r|d dkr|d d krt|d |_|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_|  d|v r|d d kr|d dkrtjj	|d d}d|v rV|d dkrV|d d krV|d |_d|v rn|d dkrn|d d krn|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_ d|v r|d dkr|d d kr|d |_!|  ntjj"|d d}d|v r$|d dkr$|d d kr$|d |_d|v r<|d dkr<|d d kr<|d |_d|v rT|d dkrT|d d krT|d |_d|v rl|d dkrl|d d krl|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_ d|v r|d dkr|d d kr|d |_!|  t#dddW S td  z3tjj$|d	 d!}	|	% rt#d"d#dW W S tjj"|||d	 |d
 |d |d d$}|  |d |_d|v r*|d dkr*|d d kr*|d |_d|v rB|d dkrB|d d krB|d |_|d	 |_|d	 |_&t|d |_d%|_d|v rn|d dkrn|d d krn|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_|  t|jd& |jd'krtj'd(d)j$|j(d*)d+dd,}
|
% r|
D ]}t*|}|d+ }|d, }qnd}d}d}d}|jd ks|jdkr|j}nd"}tjj	|j(d*}d-}|j}||j||d.d.|j|d d/}t+d0|}t,||| n#tjj	|j(d*}d1}|j}|j|d	 |d d2}t+d3|}t,||| tjj"|j(d}d|v r\|d dkr\|d d kr\|d |_d|v rt|d dkrt|d d krt|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_d|v r|d dkr|d d kr|d |_ d|v r|d dkr|d d kr|d |_!|  t#dd4dW W S  t-y'   t./d5 t#d"d6d Y W S w W d S  t-yS } zt./d7 t0|||t1| t#d8t1|iW  Y d }~S d }~ww )9Nr   r{   zsubscriber/adminPanel/z+--------------Update USer------------------r  r   r>  r   r|   r   r   r   r?  r   r  r@  rA  rv  r   r   r+  r,  r-  r.  r/  r   r0  r1  Tz User Updated successfully r   z+--------------Create USer------------------r}   Fz#User with that email already exists)r   r   r|   r   r  r   r   Z234567654345654565456ZOrganization__idZOrganizationAdress__idr   Zorganization__gymNameZorganizationAddress__addresszWelcome to StratFit.Z12345)r  r|   ZphonenoAddresslatlangr   r   zgymRegistration.htmlr  )r   r|   r   r  z User Created successfully zProblem with Creating UserzProblem with Creating User...r   rl   )2rP   rC  r   r   r   r   rs   r9   r   r   r   r   r>  r|   r   r   r   r   r   r   r  r@  rA  r  r   r:   r+  r,  r-  r.  r/  r   r0  r1  r   r   r   r   r   r|  r   r   r}  rT   ra   r   r   r	   rz   r   )rg   rD  r   ru   rC  rv   rw   rD  rG  existingUserZgymnamesr   r  r  addressr  r  ZphoneNor;  rh   rj   ry   rk   r   rm   rm   rn   
adminPanel  sf  



 
 
 
 

 
 
 
 
&
&
&&
&
&
&
&
&
&
&

&
&
&
&
&
&
&
&

	
&
&


&
&
&
"



&
&
&
&
&
&
&
&

  3
r  c           T      C   s0  t | j |dkr<| jdd }|d u r;| jd| jdtj| jdd}t | t | jj tj| jj|d}n|dkrst| jd| jdtj	| jdd	d
}t d t | jj tj
| jj|d}t t|jd nf|dkrt d d}	 ttjtjdd}z || jj}t |d t |d ||}	|dW S  ty }
 zd|
d }
~
ww |dkrd}ttj| jdtj| jdd	d
}tj
||d}| jdd }|r| j}| jj|| r|pd d}nt|j}| j}| jj|d | r|pd d}t |jd |jd}|jd}||krd|_t j!j|j"d}d|_	 d}t#j!j|d}|j$}t%j!j&|j"d}|' rr|rbt%j!j|j"d}|j"|_(|)  n>t%j!j|j"d}d |_(|)  n.|rt%j!j*|j"|j"d!}|)  |d"krd#|_+nd$|_+nt%j!j*|j"d d!}|)  d$|_+|d%d  |_,|)  |r|jri }|j}|j|d&< | j-d'd |d(< t |d) t. }t |d* |/|}t |d+ |}t j!j|d,}|j0}t1j!jd%d-}t1j!jd.d-}t2j!3d/j&|j"d4d0d1d2d3d4d5d6d7d8d9
} d:}!i }"i }#i }$| ' r<d}!| D ]}%t|%}#|#d1 d kr:|#d1 |#d;< |#d1 d<|#d1< qt5j!j&|j"d=4 }&d:}'|&' rYd}'|&D ]}%t|%}"qQt6j!j&|j"d=j&d%d>gd?4 }(t j!j|j"d-})d:}*d:}+g },g }-d}.|(' rd:}.d}*|(D ]H}%t|%}/t6j!j&|/d@ dA7 }0t8j!3dBdCd/j&|/d@ d-4dDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[}1|1D ]}2t|2}3t9j!3d\j&|3dD dA4d]}4d^}5|4D ]}6t|6}7|5d_|7d]  7 }5q|5d^kr|5d%d  }8nd^}8t:j!3d`j&|3dD dA4da}9d^}:|9D ]}6t|6}7|:d_|7da  7 }:q|:d^kr)|:d%d  };nd^};|;|3db< |8|3dc< |;|3dJ< |8|3dQ< |3dU ddksI|3dU dekrmt j!j|3dV d-}<t;|3dL df t;t;|<j<dg t;|<j=  dh |3dL< n#t j!j|3dW d-}=t;|3dL df t;t;|=j<dg t;|=j=  dh |3dL< di|3dj< dk|3dl< |0|3dm< t |dn do|v r:|do dpkr:|)j+d#kr|dq dr d"kr|3dZ |3dH< |3dZ |3ds< |3dZ |3dX< n|3dX |3dH< |3dX |3ds< t>|3dH dtkrdu|3dH< q|dq dr d"krt?j!4 j&|3dZ dv}>nt?j!4 j&|3dX dv}>|>D ]}?t|?}@|@dw }Aq|A|3dH< |dq dr d"kr+|3dZ |3dX< t>|3dH dtkr8du|3dH< qt>|3dH dtkrIdu|3dH< q|)j+d#krx|dq dr d"krk|3d[ |3dH< |3d[ |3ds< |3dZ |3dX< nK|3dH |3dH< |3dH |3ds< n>|dq dr d"krt?j!j|3dZ dv}>|>j@|3dX< |3d[ |3dH< |3d[ |3ds< nt?j!j|3dX dv}>|>j@|3dX< |3dH |3dH< |3dH |3ds< tA|3dH dtkrdu|3dH< q|3|/dx< |,B|/ qtCj!j&|j"d=4dydzd{d|dDd@d}d~dddddd}B|B' rd}+|BD ]}%t|%}$|-B|$ qtDj!j&|j"d4 }C|C' r3|CD ]"}Dt|D}E|Ed }FtEF|F tDj!j|EdD d-}G|d |G_G|G)  qntDj!j*|j"|d d}H|H)  tHI }Id}J|IJ|J tK|I}Kg }L|KD ]}Mt|M}N|LB|N qUtL|j"|L}O|Og kr|LD ])}P|PdD }Qd:}R|OD ]}S|Sd |Qkr|Sd |Pd< d}Rqy|Rd:krdt|Pd< qyqo|jd urd| jMd< |j| jMd&< |j"| jMd< |j<| jMd< tNi d|Lddddd|#dQ|"d}|-d|,d|!d|'d|*d|+d|d d|d d|jOdq|dq d& d|d|dq dD i d|dq d d|dq d d|dq d d|dq d d|dq d d|dq d d|dq d d|dq d d|.d|dq d d|dq d d&|jd|dq d d|dq d d|dq d d|dq d d|jP|jPddddddddddddddddddddddddddddddddddddddddddddddddddtddddddddddg
ddiddiddiddiddiddiddiddiddig	d%ddd͜d%ddd͜d%ddd͜d%d>dd͜d%d%dd͜gd%ddd͜d%ddd͜d%d>dd͜d%d>dd͜d%d>dd͜d%d%dd͜d%d%dd͜gdԜd՜S tNd:ddלS )Nfacebookaccess_tokenclientIdredirectUrir  	client_idredirect_uriclient_secretr  paramsgoogle-oauth2authorization_coder  r  r  r  Z
grant_typethis came here1Gr   test----twitterI am twitter'https://api.twitter.com/oauth/authorizehttp://alpha.stratfit.netr  Zcallback_urioauth_tokenoauth_token_secret8Invalid response from Twitter requesting temp token: {0}linkedin-oauth2/https://www.linkedin.com/uas/oauth2/accessTokenr  ru   iam HererR  Tr  r   r   r   r   r   r  r  r   r   r|   r  r  1234Z;gffffffffffffffffffffffffffffffffffffffffffffffffffffffffffZCjddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddr}   r   r   rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  r  FrQ  %Y/%m/%d %H:%M:%SrS  r   rT  rX  r  rV  rW  r   rY  r[  r\  r]  r^  r_  r`  ra  rb  r  r  r  r?   rZ  r  r  rc  r   rd  re  rf  r  r  r  r  r   r  r  r  r  r  rg  rh  ri  rj  rk  r  r  r  r  r  r  r   r  r,  r   r  r   r  r  r  r>  rl  rm  rn  ro  r%  rp  rq  rr  r   rs  rt  ru  r  r+  r  a"  SELECT *,uae.id AS advexId,ue.id as id,uv.videoLink as video_id__videoLink FROM `utility_exercise` ue LEFT JOIN `utility_advexercises` uae ON ue.id = uae.exercise_id LEFT JOIN `utility_videos` uv ON uv.id = ue.video_id WHERE ue.id IS NOT NULL AND ue.accessLevel = 0 AND ue.exerciseStatus =1r  r  r  r!  r   r  r   rk   r#  r$  r&  r'  r(  r)  r*  r  r   r"  r   r   r   rw  r   rv  organizationry  r   r   rz  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  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  )r  r  r  r  User not activer   )Qrs   r   r   r   SOCIAL_AUTH_FACEBOOK_SECRETbackendACCESS_TOKEN_URLrequestsr}   SOCIAL_AUTH_GOOGLE_OAUTH2_SECRETpostr   r   textr'   SOCIAL_AUTH_TWITTER_KEYSOCIAL_AUTH_TWITTER_SECRETfetch_request_tokenREQUEST_TOKEN_URLauthorization_url
ValueErrorr  SOCIAL_AUTH_LINKEDIN_KEYSOCIAL_AUTH_LINKEDIN_SECRETru   do_authis_authenticatedr|   rj  r~  rr  r   r9   r   r   rZ   r   r:   r   r   r   r   r   r   r  r   rN   r2  r   r]   r<   r|  r   r?   rJ   r  r,   r1   r2   r   r   r   r   r[   r  r  r   rK   rG   r   r   r  r   r  r  r  r  r3  r   r  r  )Trg   r  r  r  rpayloadAUTHORIZATION_URLoauth_clientresprw   r   access_token_urlaccess_tokenFBru   ra  updatedTimer  r   r   r   userAddupdateUserAddr   r  email_idr4  r5  r6  r7  r   r   r  r  r'  r  r  r  r   r  r(  r  r  r)  r*  r&  r  ry  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  r  r  r  r  r  r  r  r  r  r  rm   rm   rn   auth_by_tokenN  s$  



















.

 

P


64


0







  r  c              
   C   s.  | j dd }| j dd }|rNtd zt| |}W n ty5 } ztt|ddW  Y d }~S d }~ww trHt| d}t	|||j
 t|S tdddS | j d	d d
krtd z| df}W n ty{ } ztt|ddW  Y d }~S d }~ww |rt| td|itjdS tdddS tdddS )Nr  r  z
Where I am  r   r   Bad Credentials  r   Zapple
In Twitterr  r  Bad request)r   r   rs   register_by_access_tokenr   r%   r   r9   load_strategyr+   social_userr   r   HTTP_200_OK)rg   
auth_tokenr  ru   rx   strategytokenrm   rm   rn   social_register  s8   
r  c              
   C     | j dd }| j dd }|r>zt| |}W n ty1 } ztt|ddW  Y d }~S d }~ww tr8t|S tdddS | j dd dkrtd	 zt| d}W n tyl } ztt|ddW  Y d }~S d }~ww |r|t| td
|it	j
dS tdddS tdddS Nr  r  r  r   r  r  r   r  r  r  r  )r   r   r  r   r%   r   r9   r   rs   r   r  rg   r  r  ru   rx   r  rm   rm   rn   social_core_register  2   r  c           I      C   s  t | j |dkr<| jdd }|d u r;| jd| jdtj| jdd}t | t | jj tj| jj|d}n|dkrat d	 d
}ttj	| jdtj
| jddd}tj||d}n|dkrt| jd| jdtj| jddd}t d t | jj tj| jj|d}t t|jd nf|dkrt d d}	 ttjtjdd}z || jj}	t |	d t |	d ||}
|	dW S  ty } zd|d }~ww |dkrd}ttj| jdtj| jddd}tj||d}| jdd }|r t d | j}| jj|| r|pd d}n#t|j}t t|j | j}| jj|d | r?|p@d d}t |jd |jd}|j d}||krd|_!t"j#j|j$d }d|_!	 d!}t%j#j|d"}|j&}t'j#j(|j$d#}|) r|rt'j#j|j$d#}|j$|_*|+  n>t'j#j|j$d#}d$|_*|+  n.|rt'j#j,|j$|j$d%}|+  |d&krd'|_-nd(|_-nt'j#j,|j$d$d%}|+  d(|_-|d)d  |_.|+  |r|j!ri }|j}|j|d*< | j/d+d |d,< t |d- t0 }|1|}t | |}t"j#j|d.}|j2}t3j#jd)d/}t3j#jd0d/}t4j#5d1j(|j$d#6d2d3d4d5d6d7d8d9d:d;
} t | j7 d<}!i }"i }#i }$| ) ro| D ]}%t|%}#|#d3 d krmd}!|#d3 |#d=< |#d3 d|#d3< qOt8j#j(|j$d>6 }&d<}'|&) rd}'|&D ]}%t|%}"qt9j#j(|j$d>j(d)d?gd@6 }(t"j#j|j$d/})d<}*d<}+g },g }-d}.|() r1d<}.d}*|(D ]H}%t|%}/t9j#j(|/dA dB: }0t;j#5dCdDd1j(|/dA d/6dEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\}1|1D ]}2t|2}3t<j#5d]j(|3dE dB6d^}4d_}5|4D ]}6t|6}7|5d`|7d^  7 }5q|5d_kr+|5d)d  }8nd_}8t=j#5daj(|3dE dB6db}9d_}:|9D ]}6t|6}7|:d`|7db  7 }:q@|:d_kr\|:d)d  };nd_};|;|3dc< |8|3dd< |;|3dK< |8|3dR< |3dV deks||3dV dfkrt"j#j|3dW d/}<t>|3dM dg t>t>|<j?dh t>|<j@  di |3dM< n#t"j#j|3dX d/}=t>|3dM dg t>t>|=j?dh t>|=j@  di |3dM< dj|3dk< dl|3dm< |0|3dn< t |do dp|v rm|dp dqkrm|)j-d'kr|dr ds d&kr|3d[ |3dI< |3d[ |3dt< |3d[ |3dY< n|3dY |3dI< |3dY |3dt< tA|3dI dukrdv|3dI< q|dr ds d&kr2tBj#6 j(|3d[ dw}>ntBj#6 j(|3dY dw}>|>D ]}?t|?}@|@dx }Aq?|A|3dI< |dr ds d&kr^|3d[ |3dY< tA|3dI dukrkdv|3dI< qtA|3dI dukr|dv|3dI< q|)j-d'kr|dr ds d&kr|3d\ |3dI< |3d\ |3dt< |3d[ |3dY< nK|3dI |3dI< |3dI |3dt< n>|dr ds d&krtBj#j|3d[ dw}>|>jC|3dY< |3d\ |3dI< |3d\ |3dt< ntBj#j|3dY dw}>|>jC|3dY< |3dI |3dI< |3dI |3dt< tD|3dI dukrdv|3dI< q|3|/dy< |,E|/ qtFj#j(|j$d>6dzd{d|d}dEdAd~ddddddd}B|B) r1d}+|BD ]}%t|%}$|-E|$ q$tGj#j(|j$d#6 }Ct d |C) rj|CD ]"}Dt|D}E|Ed }FtHI|F tGj#j|EdE d/}G|d |G_J|G+  qFntGj#j,|j$|d d}H|H+  t d 	 |jd urd| jKd< |j| jKd*< |j$| jKd< |j?| jKd< tLi ddddd|#dR|"d~|-d|,d|!d|'d|*d|+d|d d|d d|jMdr|dr d* d|d|dr dE d|dr d i d|dr d d|dr d d|dr d d|dr d d|dr d d|dr d d|dr d d|.d|dr d d|dr d d*|jd|dr d d|dr d d|dr d d|dr d d|jNd|jNdddddddddddddddddddddddddddddddddddddddddddddddddduddddddddddg
ddiddiddiddiddiddiddiddiddig	d)ddd̜d)ddd̜d)ddd̜d)d?dd̜d)d)dd̜gd)ddd̜d)ddd̜d)d?dd̜d)d?dd̜d)d?dd̜d)d)dd̜d)d)dd̜gdӜdԜS tLd<dd֜S )Nr  r  r  r  r  r  r  zapple-idZheereerererz$https://appleid.apple.com/auth/tokenr  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  Zhhhhhhhhhhhhhhhhhhhhhhhhhhhhhr  r  rR  Tr  r   r   r   r   r   r  r  r   r   r|   r  r  r  r}   r   r   rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  r  FrQ  rS  r   rT  rX  r  rV  rW  r   rY  r[  r\  r]  r^  r_  r`  ra  rb  r  r  r  r?   rZ  r  r  rc  r   rd  re  rf  r  r  r  r  r   r  r  r  r  r  rg  rh  ri  rj  rk  r  r  r  r  r  r  r   r  r,  r   r  r   r  r  r  r>  rl  rm  rn  ro  r%  rp  rq  rr  r   rs  rt  ru  Gender Problem here 2r  r+  r  Gender Problem here 3r!  r   r   rk   r#  r$  r&  r'  r(  r)  r*  r  r   r"  r   r   r   rw  r   rv  r  ry  r   r   rz  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  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r   )Ors   r   r   r   r  r  r  r  r}  SOCIAL_AUTH_APPLE_ID_CLIENTSOCIAL_AUTH_APPLE_ID_SECRETr  r  r   r   r  r'   r  r  r  r  r  r  r  r  r  ru   r  r  r|   rj  r~  rr  r   r9   r   r   rZ   r   r:   r   r   r   r   r   r   r  r   rN   r2  r   r]   r<   r|  r   r  r?   r   r  r!  r"  r#  r   r   r   r   r[   r  r  r   rK   rG   r   r   r  r3  r   r  r  )Irg   r  r  r  r  r  r  r  r  r  rw   r   r  ru   ra  r  r  r   r   r   r  r  r   r  r  r4  r5  r6  r7  r   r   r  r  r'  r  r  r  r   r  r(  r  r  r)  r*  r&  r  ry  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  rm   rm   rn   r    s  



















.


 

P


64


0




  r  c           K      C   s  t | j |dkr<| jdd }|d u r;| jd| jdtj| jdd}t | t | jj tj| jj|d}n|dkrst| jd| jdtj	| jdd	d
}t d t | jj tj
| jj|d}t t|jd nf|dkrt d d}	 ttjtjdd}z || jj}t |d t |d ||}	|dW S  ty }
 zd|
d }
~
ww |dkrd}ttj| jdtj| jdd	d
}tj
||d}| jdd }|r| j}| jj|| r|pd d}nt|j}| j}| jj|d | r|pd d}t |jd |jd}|jd}||krd|_t j!j|j"d}d|_t# }| j$dd }|rI|%|d }nd}t&j!j|d }|j'}t(j!j)|j"d!}|* r|rvt(j!j|j"d!}|j"|_%|+  n>t(j!j|j"d!}d"|_%|+  n.|rt(j!j,|j"|j"d#}|+  |d$krd%|_-nd&|_-nt(j!j,|j"d"d#}|+  d&|_-|d'd  |_.|+  |r|jri }|j}|j|d(< | j$dd |d)< t |d* t/ }|0|}t | |}t j!j|d+}|j1}t2j!jd'd,} t2j!jd-d,}!t3j!4d.j)|j"d!5d/d0d1d2d3d4d5d6d7d8
}"t |"j6 d9}#i }$i }%i }&|"* rO|"D ]}'t|'}%|%d0 d krMd}#|%d0 |%d:< |%d0 d|%d0< q/t7j!j)|j"d;5 }(d9})|(* rld})|(D ]}'t|'}$qdt8j!j)|j"d;j)d'd<gd=5 }*t j!j|j"d,}+d9},d9}-g }.g }/d}0|** rd9}0d},|*D ]H}'t|'}1t8j!j)|1d> d?9 }2t:j!4d@dAd.j)|1d> d,5dBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdY}3|3D ]}4t|4}5t;j!4dZj)|5dB d?5d[}6d\}7|6D ]}8t|8}9|7d]|9d[  7 }7q|7d\kr|7d'd  }:nd\}:t<j!4d^j)|5dB d?5d_};d\}<|;D ]}8t|8}9|<d]|9d_  7 }<q |<d\kr<|<d'd  }=nd\}=|=|5d`< |:|5da< |=|5dH< |:|5dO< |5dS dbks\|5dS dckrt j!j|5dT d,}>t=|5dJ dd t=t=|>j>de t=|>j?  df |5dJ< n#t j!j|5dU d,}?t=|5dJ dd t=t=|?j>de t=|?j?  df |5dJ< dg|5dh< di|5dj< |2|5dk< t |dl dm|v rM|dm dnkrM|+j-d%kr|do dp d$kr|5dX |5dF< |5dX |5dq< |5dX |5dV< n|5dV |5dF< |5dV |5dq< t@|5dF drkrds|5dF< q|do dp d$krtAj!5 j)|5dX dt}@ntAj!5 j)|5dV dt}@|@D ]}At|A}B|Bdu }Cq|C|5dF< |do dp d$kr>|5dX |5dV< t@|5dF drkrKds|5dF< qt@|5dF drkr\ds|5dF< q|+j-d%kr|do dp d$kr~|5dY |5dF< |5dY |5dq< |5dX |5dV< nK|5dF |5dF< |5dF |5dq< n>|do dp d$krtAj!j|5dX dt}@|@jB|5dV< |5dY |5dF< |5dY |5dq< ntAj!j|5dV dt}@|@jB|5dV< |5dF |5dF< |5dF |5dq< tC|5dF drkrds|5dF< q|5|1dv< |.D|1 qtEj!j)|j"d;5dwdxdydzdBd>d{d|d}d~dddd}D|D* rd}-|DD ]}'t|'}&|/D|& qtFj!j)|j"d!5 }Et d |E* rJ|ED ]"}Ft|F}G|Gd }HtGH|H tFj!j|GdB d,}I|d |I_I|I+  q&ntFj!j,|j"|d d}J|J+  t d 	 |jd ur{d| jJd< |j| jJd(< |j"| jJd< |j>| jJd< tKi ddddd|%dO|$d{|/d|.d|#d|)d|,d|-d|d d|d d|jLdo|do d( d|d|do dB d|do d i d|do d d|do d d|do d d|do d d|do d d|do d d|do d d|0d|do d d|do d d(|jd|do d d|do d d|do d d|do d d| jMd|!jMddddddddddddddddddddddddddddddddddddddddddddddddddrddddddddddg
ddiddiddiddiddiddiddiddiddig	d'dddɜd'dddɜd'dddɜd'd<ddɜd'd'ddɜgd'dddɜd'dddɜd'd<ddɜd'd<ddɜd'd<ddɜd'd'ddɜd'd'ddɜgdМdќS tKd9ddӜS )Nr  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  rR  Tr  r  Zcountry_namer   r   r   r   r   r  r  r   r   r|   r  r  r}   r   r   rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  r  FrQ  rS  r   rT  rX  r  rV  rW  r   rY  r[  r\  r]  r^  r_  r`  ra  rb  r  r  r  r?   rZ  r  r  rc  r   rd  re  rf  r  r  r  r  r   r  r  r  r  r  rg  rh  ri  rj  rk  r  r  r  r  r  r  r   r  r,  r   r  r   r  r  r  r>  rl  rm  rn  ro  r%  rp  rq  rr  r   rs  rt  ru  r  r  r+  r  r  r!  r   r   rk   r#  r$  r&  r'  r(  r)  r*  r  r   r"  r   r   r   rw  r   rv  r  ry  r   r   rz  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  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r   )Nrs   r   r   r   r  r  r  r  r}  r  r  r   r   r  r'   r  r  r  r  r  r  r  r  r  ru   r  r  r|   rj  r~  rr  r   r9   r   r   rc   r   r   rZ   r   r:   r   r   r   r   r   r  rN   r2  r   r]   r<   r|  r   r  r?   r   r  r!  r"  r#  r   r   r   r   r[   r  r  r   rK   rG   r   r   r  r3  r   r  r  )Krg   r  r  r  r  r  r  r  r  rw   r   r  r  ru   ra  r  r  gr   r   r   r   r  r  r   r  r  r4  r5  r6  r7  r   r   r  r  r'  r  r  r  r   r  r(  r  r  r)  r*  r&  r  ry  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  rm   rm   rn   auth_by_token_new'
  s  

















.


 

P


64


0




  r  c              
   C   r  r  )r   r   r  r   r%   r   r9   r   rs   r   r  r  rm   rm   rn   social_register_new`  r  r  c              
   C   s  t  }|| }|d }d}d}zR|d kr[tjdj|ddddd	d
dd}| rSg }|D ]}t|}	|	d d krE|	d 	d|	d< |
|	 q0td|dW S tdddW S tdddW S  ty }
 ztd t|||t|
 tdt|
iW  Y d }
~
S d }
~
ww )Nr   r  zsubscriber/getfitnessinfo/rG  r   rH  rI  rJ  rK  rL  rM  rN  r  Tr   rB  FPlease Enter your Detailsr   r   rB  r   r   rl   )rP   rC  r<   r   r|  r   r   r   r}  r~  r   r   r   r   r	   rz   r   rg   rD  r   ru   rv   rw   ZfprofileDetailsrv  r   r7  r   rm   rm   rn   fitnessInfo  s0   
&
r  c                 C   s  t  }|| }|d }d}d}zO|d krXtjdj|ddddd	d
dddd	}| rPg }|D ]}t|}	|	d d krG|	d 	d|	d< q2t
d|	dW S t
dddW S t
dddW S  ty }
 ztd t|||t|
 t
dt|
iW  Y d }
~
S d }
~
ww )Nr   r  zsubscriber/fitnessdetails/rG  r   rH  rI  rJ  rK  rL  rM  rN  rO  rP  r  Tr   r   Fr  r  rB  r   rl   )rP   rC  r<   r   r|  r   r   r   r}  r~  r   r   r   r	   rz   r   r  rm   rm   rn   fitnessdetails  s0   
*
r  c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krtjj|d}t	jj
|d}d|d v rq|d d dkrq|d d d krq|j|d d krqt	jj|d d d	j|d d}	|	 rjtd
ddW S |d d |_d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_d|d v r%|d d dkr%|d d d kr%|d d |_|  d|d v r|d d dkr|d d d krtjdddd}
|
D ]@}t|}t|d |d d|d d  kr|d }tjj
|d d}|r~||_|  qMtjj|d |d}|  qM| rtjj
|d d}d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_ d|d v r<|d d dkr<|d d d kr<|d d |_!d|d v re|d d dkre|d d d kretd|d d  |d d |_"d |d v r|d d  dkr|d d  d kr|d d  |_#nd!|_#|  	 td"d#dW S tjj|d}d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_d|d v r|d d dkr|d d d kr|d d |_ d|d v r=|d d dkr=|d d d kr=|d d |_!d|d v rf|d d dkrf|d d d krftd|d d  |d d |_"d |d v r|d d  dkr|d d  d kr|d d  |_#nd!|_#|  	 td"d$dW S td
d%dW S  t$y } zt%&d& t'|||t(| td't(|iW  Y d }~S d }~ww )(Nr   r{   zsubscriber/fitnessprofile/r   r   r|   r=  r   r}   FzEmail ID already in user   r   r  r   r   r   Zcountrycoder   r   countryCodez===========+r   r  rH  rI  rJ  ZheightMrL  r  ZweightMZkgsTz& Fitness Profile Updated successfully z$ Fitness Profile Saved successfully  User logged outr   rl   ))rP   rC  r   r   r   r   r<   r   r   r9   r   r|   excluder   r   r   r  r   r   r   r  r   rZ   r   r}  rs   r:   r   r   r  rH  rI  rJ  rK  rL  rM  r   r   r	   rz   r   )rg   rD  r   ru   ZprofileInforv   rw   ZfitnessexistZuserProfileZuserExistObjZ	cntrydatar   ZcntryObj
country_idr  ZuserAddsr   r   rm   rm   rn   fitnessProfileInfo  s   

,",,,,222

22222222222222
r  c           	      C   sl   g }t jj| d}|jd kr4|j}|j}|j}tjj|||d }|D ]}|	|d |d d q$	 |S )Nr   )rH  trainingLevel_id
bodyWeightexercise_idrL  )r  r  )
r<   r   r   rH  rL  r  r^   r   r   r   )	uidZ	exercisesarrr  Z	genderValZ	weightValZtrainingLevelValZtmaxInfor  rm   rm   rn   r  `  s   
r  c                 C   s   t | jd}t|d d  td}t| |  }t| |d }d| d |d d  d |d d	  d
 |d d  d |d d  d }t|}|  }t| tddiS )Nr{   ZblogtitlezRhttp://alpha.stratfit.net/blog/?json=get_nonce&controller=posts&method=create_postnoncez7http://alpha.stratfit.net/blog/?json=create_post&nonce=z&title=z	&content=contentz&status=publish&author=Zauthorz&categories=
categoriesr   r   T)r   r   r   r   rs   r  r   r   )rg   ZblogInfoZnonceObjZnoncedetnonrw   postObj
postDetailrm   rm   rn   getNonce  s   
L
r  c                 C   s  t  }|| }|d }t| jd}|}d}z|d krt| z	tjj	|d}W n tj
y9   d }Y nw |d urtd |d d |_|d d |_|d d	 |_|d d
 |_|d d |_|d d |_|d d |_d|d v r|d d dkr|d d |_|d dks|d dks|d dkrd|_|  tdddW S td tjj||d d |d d |d d d}d	|d v r|d d	 dkr|d d	 |_d
|d v r|d d
 dkr|d d
 |_d|d v r|d d dkr|d d |_d|d v r|d d dkr|d d |_d|d v r2|d d dkr2|d d |_|d dksG|d dksG|d dkrOd|_|  ngd|_|  tjj	|jd}	| jd }
tjj	|d}ddd tdD }t|}d|
 d  | }d!}d"}|j|	j|	j|	j|	j|	j|	j|	jd|
 d# t|	j |d$
}td%|}t||| ||_ |  tdd&dW S tdd'dW S  t!y } zt"#d( t$|||t| td)t|iW  Y d }~S d }~ww )*Nr   r{   zsubscriber/trainerDetails/r   z&------------Update Trainer------------trainerr2  specializationsaccreditations
strengthBPstrengthSQAT
strengthOP
strengthDLtrainerCoverr   r   r   r   r  Tz& Trainer details updated successfully r   z.--------------Create Trainer------------------)r   r2  r  r  Fr  r   r   c                 s   r   r   r
   r   rm   rm   rn   r     r   z'createtrainerProfile.<locals>.<genexpr>r   zA/services/services/stratservices/subscriber/activateTrainer?code=zActivate trainer profilezsujatha@stratfit.coz/#/userbranding/)
ZtrainernameZ	traineridr2  r  r  r  r  r  Zuserbrandingr   ztrainerverfication.htmlz$ Trainer details saved successfully r  r   rl   )%rP   rC  r   r   r   r   rs   r=   r   r   DoesNotExistr2  r  r   r  r  r  r  r  r   r   r   r   r   r   r9   r   r   r   r   rT   ra   r   r   r   r	   rz   )rg   rD  r   ru   trainerInforv   rw   rE  ZtrainerInformationZ
trainerobjr   Ztrainerfirstnamer   r   r   rh   rj   ry   rk   r   rm   rm   rn   createtrainerProfile  s   

$


   *



r  c                 C   s   | j d }t| tjj|d}| rmtjj|ddddd}|D ]B}|d }|d }tjj|d}d|_|	  t
jj|d}d	|_|	  t
jj|d
}	d}
|	j}d|	ji}td|}t|
|| q#tdddS tdddS )Nr  r  r   r   r   r   r  r   r   r   zProfile verificationZtrainer_fnameztrainerverficonfirmation.htmlT%Trainer profile verified successfullyr   zPlease provide trainer profile)r  rs   r=   r   r   r   r   r   r   r   r9   r   r|   r   rT   ra   r   )rg   r  Ztrainerdata
trainerinfr   r   r  ZtdataZupdateUserTyper   rh   rj   ry   rk   rm   rm   rn   activateTrainer  s.   

r  c           
      C   s   t  }|| }|d }d}d}z6|d kr?tjdddddd	d
dd	j|d}| r5|D ]}t|}q-nd}td|dW S tdddW S  t	yn }	 zt
d t|||t|	 tdt|	iW  Y d }	~	S d }	~	ww )Nr   r  zsubscriber/viewtrainer/r2  r  r   r  r  r  r  r   r  r   r   T)r   ZDetailsFrB  r   r   rl   )rP   rC  r=   r   r   r   r   r}  r   r   r   r	   rz   r   )
rg   rD  r   r  rv   rw   rE  r   r7  r   rm   rm   rn   viewTrainerProfile	  s*   
$

r  c              
   C   s<  t  }|| }|d }t| jd}|}d}z\|d krnt| tjj	|d d}|
 rJtjj|d d}d|v rE|d rE|d |_|  ntjj|d d}	d|v rb|d dkrb|d |	_|	  td	d
dW S tdddW S  ty }
 ztd t|||t|
 tdt|
iW  Y d }
~
S d }
~
ww )Nr   r{   zsubscriber/userGoal/r   rS  levelr   r   TzGoal Saved Successfullyr   FrB  r   rl   )rP   rC  r   r   r   r   rs   r?   r   r   r   r   r  r   r   r   r   r   r	   rz   r   )rg   rD  r   ru   ZgoalInforv   rw   r  rB  Zusergoalr   rm   rm   rn   userGoal#  s:   




r  c           
   
   C   s
  t  }|| }|d }d}d}zLt| |d krUtjj|dddd}t|dkrMtd	 |D ]}t| t|}td
| t	d|d  W S W d S t	dddW S t	dddW S  t
y }	 ztd t|||t|	 t	dt|	iW  Y d }	~	S d }	~	ww )Nr   r  zsubscriber/getUserGoal/r   r  purposer   r   z	Here I amZdobjTr  zUser does not set their goalr   FrB  r   rl   )rP   rC  rs   r?   r   r   r   rL  r}  r   r   r   r	   rz   r   )
rg   rD  r   ru   rv   rw   Zuserpager   r7  r   rm   rm   rn   getUserGoalI  s2   


r  c              
   C   s<  t  }|| }|d }t| jd}|}d}ztjj|d d}|j	dkr||d kr6t
ddd	W S tjj|d |d
ddd}| r|D ]W}	t|	}
tjj|
d d}||_|d |_|d |_|  tjddddj||d d}i }| r|D ]}t|}|d |d kr|d |d< qt
dd|d  W S n@tjj||d |d d}|  tjddddj||d d}i }| r|D ]}t|}|d |d krt|d |d< qt
dd|dW S t
ddd	W S  ty } ztd t|||t| t
dt|iW  Y d }~S d }~ww )Nr   r{   zsubscriber/createUserfollow/followerUser_idr   r  FYou can not follow yourselfr   r  followingUser_idr  r   followingUserfollowerUser)r  r  ZfollowStatusTzDetails Updated Successfully)r   rk   Zcelebritiesr  r  r   zDetails Saved Successfullyyou are not a celebrityr   rl   )rP   rC  r   r   r   r   r9   r   r   r   r   r@   r   r   r   r}  r  r  r   r   r   r   r   r   r	   rz   r   )rg   rD  r   ru   r>  rv   rw   usertyper   r  rq  rB  ZuserfollowsZufollowZdt3Z	followObjfollowZuserfollows2ZufollowsZdt4Z
followObj2r   rm   rm   rn   createUserfollowf  sh   



  
r  c           	   
   C   s   t  }|| }|d }d}d}z'|d kr0tjj|d }tjj|d }td||dW S tdd	d
W S  ty_ } zt	d t
|||t| tdt|iW  Y d }~S d }~ww )Nr   r  zsubscriber/getUserfollow/)r  )r  T)r   ZNumberOFFollowingsZNumberOFFollowersFrB  r   r   rl   )rP   rC  r@   r   r   r  r   r   r   r	   rz   r   )	rg   rD  r   ru   rv   rw   rB  Zdetails1r   rm   rm   rn   getUserFallowersFollowing  s"   

r  c              
   C   s   t  }|| }t| |d }d}d}z4t| |d krAtj djdd}g }|D ]}t|}	|	|	 q-t
t|W S tddd	W S  typ }
 ztd
 t|||t|
 tdt|
iW  Y d }
~
S d }
~
ww )Nr   r  zsubscriber/getCountryDetails/r   r   )countryStatusFrB  r   r   rl   )rP   rC  rs   rZ   r   rp  order_byr   r   r   r   r   dumpsr   r   r   r	   rz   r   )rg   rD  r   ru   rv   rw   r   rv  r   r7  r   rm   rm   rn   getCountryDetails  s,   

r   c              
   C   sH  t  }|| }|d }t| jd}|}d}z|d krddd tdD }t|}|d d	 t| }	t	
|	d
}
tjj|d dd}tjj|d d}| r_tdddW S d|  v ridksvn d|  v rtd krn n0| jd }d| d |
d }d}|d }|d |d}td|}t||| tdddW S | rtdddW S tjj|d |d |
d}|  | jd }d| d |
d }d}|d }|d |d}td|}t||| tdddW S tdddW S  ty# } ztd t|||t| td t|iW  Y d }~S d }~ww )!Nr   r{   zsubscriber/inviteusers/r   c                 s   r   r   r
   r   rm   rm   rn   r     r   zinviteusers.<locals>.<genexpr>r  r|   r   r   r   r|   r   r}   TKInvitation with this mail-id already accepted or already a user in StratFitr   r   r   r   #/acceptinvites/
Invitationr   r   r   coachinvitations.htmlInvitation sent successfully(Invitation to this email-id already sent)r   r|   r   /#/acceptinvites/FrK  r   rl   rP   rC  r   r   r   r   r   r   r   r   r   r   rA   r   r   r9   r   r   r   rT   ra   r   r   r   r   r	   rz   rg   rD  r   ru   
emailslistrv   rw   r   r   r   r   ZexistingInvitesr  r   r   rh   rj   ry   rk   ZcreateInvitaionr   rm   rm   rn   inviteusers  sh   
.




r-  c              
   C   s  t  }|| }|d }t| jd}|}d}z|d krtjj|d d}|D ]l}t	|d d|d  tjj
|d d}	|	 rIt	d	 d
}
q)ddd tdD }t|}|d d t| }t|d}| jd }d| d |d }d}|d }|d |d}td|}
t||
| d}
q)tdddW S tdddW S  ty } ztd t|||t| tdt|iW  Y d }~S d }~ww )Nr   r{   zsubscriber/inviteMultiEmails/r   r   z---<>---r|   r}   zUser Already ExistszAlready Accepted the Invitationr   c                 s   r   r   r
   r   rm   rm   rn   r      r   z$inviteMultiEmails.<locals>.<genexpr>r  r   r   r   r   r)  r$  r%  r&  r'  TzInvitations sent successfullyr   FrB  r   rl   )rP   rC  r   r   r   r   r9   r   r   rs   r   r   r   r   r   r   r   r   r   rT   ra   r   r   r   r	   rz   )rg   rD  r   ru   r,  rv   rw   Z	coachnamer  ZexistingInvitationsrk   r   r   r   r   r   r   rh   rj   ry   r   rm   rm   rn   inviteMultiEmails  sJ   



r.  c                 C   s6  t | jd}t|d  td t|d d}|dd}t| tj	j
|d d }t|d	 | rtj	j
|d dd
ddd}|D ]}t|}t|d d d}qMtj	j
|d d }	|	 rstdddS tj	j|d |d d|d t|d}
|
  tdd|d dS tdddS )Nr{   r  zcame Here TO Printr   r   r   r   r}   Zppppr   r   r|   r   Z	123456789r   Fz2Already a user. Please Login with your credentialsr   r   )r   r|   r   r   r   Tr	  r  zInvalid Details)r   r   r   r   r   r  rs   r   rA   r   r   r   r   r}  r9   r   r   r   r   )rg   Zinvitationsr  r  ZinvitationDatar
  r   r7  r   ZchecktrainerZcreateTrainerrm   rm   rn   acceptinvite8  s6   
r/  c              
   C     t  }|| }|d }d}d}z|d krd| jv r)| jd dkr)t| jd }nt}d| jv r?| jd dkr?t| jd }nd}|d | }|| }	tjjdd	d
d	 
d
}
t|
}|
||	 }t }|D ]!}t|}tjj|d
 d}| rd|d< nd|d< || qjt||dW S tdddW S  ty } ztd t|||t| tdt|iW  Y d }~S d }~ww )Nr   r  subscriber/invitedUsersData/rh  r   ri  r   r   r   r|   r   r}   Acceptedr   Invitedrn  FrK  r   r   rl   rP   rC  r
  r   r5   rA   r   r   r   distinctr  rL  rq  r}  r9   r   r   r   r   r   r	   rz   r   rg   rD  r   ru   rv   rw   rh  ri  rr  rs  ZinvitedDataro  r   rv  r   r7  userdatar   rm   rm   rn   invitedUsersData\  D   
 

r9  c              
   C   r0  )Nr   r  r1  rh  r   ri  r   r  r2  r|   r   r}   r3  r   r4  rn  FrK  r   r   rl   r5  r7  rm   rm   rn   invitedCelebData  r:  r;  c              
   C   sX  t  }|| }|d }t| jd}|}d}z|d krt| d|v r1ddkr1t|d }nd}d|v rBddkrBt|d }nd}|d | }	|| }
d	|v ri|d	 d
kritj	j
dddd d}ntj	j
dddd d}d|  v rdksn d|  v rd krn n|j
|d d}d|  v rdksn d|  v rd krn n|j
|d d}|}t|d t|}||	|
 }t| t }|D ]!}t|}tj	j
|d d}| rd|d< nd|d< || qt||dW S tdddW S  ty+ } ztd t|||t| tdt|iW  Y d }~S d }~ww )Nr   r{   zsubscriber/invitedDataSearch/rh  r   d   ri  r   ZcelebId8r  r2  r|   r   r   )Zemail__icontains)Zname__icontainszthis Came Herer}   r3  r   r4  rn  Fzuser Logged Outr   r  rl   )rP   rC  r   r   r   r   rs   r   rA   r   r   r   r6  r  rL  rq  r}  r9   r   r   r   r   r   r  rz   r   )rg   rD  r   ru   r   rv   rw   rh  ri  rr  rs  ZinvitefilterZivvitefilter_allro  Zinvites_filterrv  r   r7  r8  r   rm   rm   rn   invitedDataSearch  sZ   
" ..


r>  )GraphAPIc                 C   s"   d}t |}| }t|ddS )Na:  https://graph.facebook.com/v2.8/me?fields=albums.limit(5)%7Bname%2C%20photos.limit(2)%7D%2Cposts.limit(5)&access_token=EAACEdEose0cBALWVJi0YwU4vZAbnBV9KT57PdaVvNWu3axW84LN27vIsVu6PFlRQV84nSHZB6CrqkSNSRfyHQJhPy1jqCuxvzoLtifg3ZBUqsHmLnhqAvf8l9PSJZCY91JI18VLTLaByePfzRSaFKp3YO1pMndmKSidoPQPTaAgwiKPcszHZCXRpESSJX9oIZDFr.  )r  r   r   r   )rg   post_urlr  r  rm   rm   rn   getFacebookFeed  s   
rA  c              
   C   s   t  }zF|| }t| jd}|d }|d krBt|d |D ]}t|d tjj	|d}d|_
||_|  q!tddd	W S td
dd	W S  tyh } ztd tdt|iW  Y d }~S d }~ww )Nr{   r   rN  z--<>--r  r  Tz#Gym Super User Created Successfullyr   FrK  r  rl   )rP   rC  r   r   r   r   rs   r9   r   r   r   r   r   r   r   r   r  r   )rg   rD  r   r   ru   r   Zgymsuperuserr   rm   rm   rn   makeGymSuperUser  s(   




rB  c              
   C   s@  t  }z{|| }t| jd}|d }|d krxt|d d|d v r|d d dkrtjj	|d d d}|d d |_
|d d |_|d d	 |_|d d
 |_|d d |_|d d |_|d d |_|d d |_|d d |_|d d |_|d d |_|  tdddW S tjjd||d d |d d	 d}d|d v r|d d dkr|d d |_d
|d v r|d d
 dkr|d d
 |_d|d v r|d d dkr|d d |_d|d v r|d d dkr|d d |_d|d v r|d d dkr|d d |_d|d v r'|d d dkr'|d d |_d|d v r>|d d dkr>|d d |_d|d v rU|d d dkrU|d d |_d|d v rl|d d dkrl|d d |_|  tdddW S tdddW S  ty } ztd tdt|iW  Y d }~S d }~ww )Nr{   r   rN  r   r   r  ZaccountHolderbankNameZac_numr  Zifscr   Z
ac_countryZac_stateZac_cityZ
ac_zipcodeTz$Account details updated successfullyr   r   )r   r   accountHolderNameaccountNumberZswiftz"Account details saved successfullyFrK  r  rl   )rP   rC  r   r   r   r   rs   rC   r   r   rD  rC  rE  
bankAdress	swiftCodeifscCodedefaultr   r/  r.  zipcoder   r   r   r   r   r  r   )rg   rD  r   r   ru   ZupdateDetailsZsaveDetailsr   rm   rm   rn   saveSubscriberValidation  sl   




     
rK  c           	   
   C   s   t  }z6|| }|d kr2|d }g }tjj|d }|D ]}t|}|| qtd|dW S tdddW S  t	yX } zt
d td	t|iW  Y d }~S d }~ww )
Nr   r   Tr  FrK  r   r  rl   )rP   rC  rC   r   r   r   r}  r   r   r   r   r  r   )	rg   rD  r   ru   acArr	acDetailsr  r  r   rm   rm   rn   getAccountDetailsE  s"   

rN  c           
   
   C   s   t  }t| jd}z9|| }|d kr>|d }g }tjj||d d	 }|D ]}t
|}|| q*td|dW S tdddW S  tyd }	 ztd	 td
t|	iW  Y d }	~	S d }	~	ww )Nr{   r   )r   r   Tr  FrK  r   r  rl   )rP   r   r   r   r   rC  rC   r   r   r   r}  r   r   r   r   r  r   )
rg   rD  r   r   ru   rL  rM  r  r  r   rm   rm   rn   getAccountDetails_id[  s$   

rO  c              
   C   s  t  }t| jd}zU|| }|d krZ|d }tjj|d d}d|_	|
  tjj|d j|d d}|D ]}t|}tjj|d d}	d|	_	|	
  q;tddd	W S tdd
d	W S  ty }
 ztd tdt|
iW  Y d }
~
S d }
~
ww )Nr{   r   r  Tr   r   FzDefault Accountr   rK  r  rl   )rP   r   r   r   r   rC  rC   r   r   rI  r   r   r   r  r}  r   r   r   r  r   )rg   rD  r   r   ru   ZupdateAcrM  r  r  ZupdateOtherAccountsr   rm   rm   rn   updateDefaultAccountr  s,   


rP  c                 C   s  zKt | jd}t }|| }t|d tjj	|d d
ddddd	d
dddddddd}t }|D ]}t|}g }g }	tjj	|d dd
dd}
t|
d |
 r|d urw|
D ]}t|}|d |d krqd|d< q^d|d< q^nd|d< t|
}nd}||d< tjj	|d d
dddd}tjj	|d dddd 
d!d"d#d$d%d&d'd(d)d*d+d&d,d-d.}| r|D ]}t|}|| ||d/< qng |d/< | r;|D ]c}t|}|d+ d0ks|d+ d1krtjj|d& d2}t|d" d3 tt|jd4 t|j  d5 |d"< n#tjj|d, d2}t|d" d3 tt|jd4 t|j  d5 |d"< |	| |	|d6< qng |d6< || q6tt |W S  tyl } ztd7 td8t|iW  Y d }~S d }~ww )9Nr{   ZqwertgZ	trainerIdr   r   r   r2  r  r   r  r  r  r  plansPublishedtrainerLikesr  Zuser_id__avatarr*  r   r  r   r  r  Z
1234567890TexistingFollowersFr   totalfollowersr4  r5  )r   r  activationStatusProgramTyperY  ra  r]  r_  createdBy_id__avatarr   createdBy_id__first_namer`  r^  ZprogramType_id__programTypeNamerc  rd  re  rf  
socialInforg  rh  r   ri  rj  rk  r&  r   rl   )r   r   r   r   rP   rC  rs   r=   r   r   r   rq  r}  r@   r   rL  rB   r,   r|  r   r9   r   r   r   r   r   r  r   r   r	   r   )rg   r   rD  r   Ztrainervaluesrv  r   r7  socialDetailsZtrainerPlans	followersfollower
userfollowrU  rZ  Ztplansr  r   r&  r  r  r  r   rm   rm   rn   r    sj   

2




>


64


r  c                 C   s  zjt | jd}t }|| }tjj|d d	dddd}t
 }g }g }g }|D ]5}	t|	}
tjdd	d
j|d d	dddd}| r_|D ]}t|}|| ||
d< qNn||
d< tjj|d d	dddd}| r|D ]}t|}|| ||
d< qxng |
d< tjj|d dd	dd}| r|d ur|D ]}t|}|d |d krd|
d< qd|
d< qnd|
d< t|}nd}||
d< tjd	dj|d ddgd	dd d!d"d#d$d%d&d'd(d)d*d+d,}| rZ|D ]d}t|}|d* d-ks|d* d.kr,tjj|d$ d}t|d  d/ tt|jd0 t|j  d1 |d < n#tjj|d) d}t|d  d/ tt|jd0 t|j  d1 |d < || ||
d2< qng |
d2< ||
 q-tt |W S  ty } ztd3 td4t|iW  Y d }~S d }~ww )5Nr{   r   r   r   rw  r   r   rG  Plan__idZExercise__idr   rp  rX  ZexerciseId__exerciseNamer%  r4  r   r5  rZ  r   rS  r  r  TrT  Fr   rU  r   )r   rU  plan_id__planNameZplan_id__planDescriptionZplan_id__priceZplan_id__abilityZplan_id__createdBy_id__avatarZplan_id__createdBy_idZ!plan_id__createdBy_id__first_nameZplan_id__planGoal__goalNameZplan_id__duration_weeksZ(plan_id__programType_id__programTypeNameZplan_id__originalPlanner_idZplan_id__licencePolicyre  rf  rg  rh  ri  rj  rk  r&  r   rl   )r   r   r   r   rP   rC  r9   r   r   r   rq  r}  rK   r|  r   r   rB   r@   rL  rJ   r   r   r   r   r   r  r   r   r	   r   )rg   r   rD  r   Z
uservaluesrv  r[  Z	userPlansZtMaxArrr   r7  ZuserTmaxr%  Z	tmaxValuerZ  r  r   r\  r]  r^  rU  Zuserplandetailsplanr  r  r  r   rm   rm   rn   userBrandingInfo  s|   

(






@
64


rb  c           :      C   s:	  d}t }| jdkrtddiS | jdkrt| jd}i }zXt jj|d d}|	 rrt jj
|d d}d|_|j|d	< | j
d
d |d< |  t }||}	|	}
z|
d dkr{d|
v rptdd|
d dW W S td|
d dW W S t jj
|
d d	 d}|j}tjdj|jdddddddddd	}d}i }i }i }|	 rd }|D ]}t|}|d d kr|d |d!< |d d"|d< qtjj|jd# }d}|	 rd }|D ]}t| t|}t| qtjj|jd#jdd$gd% }t jj
|jd}d}d}g }g }d }|	 rld}d }|D ]}t|}tjj|d& d' }tjd(d)dj|d& ddd*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@}|D ]}t|} tjdAj| d d'dB}!dC}"|!D ]}#t|#}$|"dD|$dB  7 }"qq|"dCkr|"dd  }%ndC}%tjdEj| d d'dF}&dC}'|&D ]}#t|#}$|'dD|$dF  7 }'q|'dCkr|'dd  }(ndC}(|(| dG< |%| dH< |(| d/< |%| d6< | d< dIks| d< dJkrt jj
| d: d})t| d1 dK tt|)jdL t|)j   dM | d1< n#t jj
| d; d}*t| d1 dK tt|*jdL t|*j   dM | d1< dN| dO< dP| dQ< || dR< t|
dS dT|v r|dT dUkr|j!dVkr|
d dW dXkrd| d? | d-< | d? | dY< | d? | d=< n| d= | d-< | d= | dY< t"| d- dkr}dZ| d-< qW|
d dW dXkrt#j j| d? d[}+nt#j j| d= d[}+|+D ]},t|,}-|-d\ }.q|.| d-< | d? | d=< t"| d- dkrdZ| d-< qWt"| d- dkrdZ| d-< qW|j!dVkr|
d dW dXkr| d@ | d-< | d@ | dY< n/| d- | d-< | d- | dY< n"|
d dW dXkr| d@ | d-< | d@ | dY< n| d- | d-< | d- | dY< t$| d- dkr-dZ| d-< qW| |d]< |%| qt&jj|jd#d^d_d`dadd&dbdcdddedfdgdhdi}/|/	 rld }|/D ]}t| t|}|%| q[t|j 	 t'jj
|j(d}0|0j)}1t*jj|jd }2|2	 r|2D ]"}3t|3}4|4dj }5t+,|5 t*jj
|4d d}6|	dk |6_-|6  qnt*jj.|j|	dk dl}7|7  |jd urRd | j/dm< |j| j/d	< |j| j/df< |j| j/dn< |j0| j/do< ti dpd ddqdr|d6|db|ds|dt|du|dv|dw|dx|	dx dk|	dk d|
d d	 dy|dz|jd{|j do|j0|j|
d d |j1|j(|j2|j3|1||
d d| |
d d} |j|
d d~ |
d d dW W S W W d S  t4yq }8 ztdt|8iW  Y d }8~8W S d }8~8ww tdddW S  t8y }8 zt9:d tdt|8dW  Y d }8~8S d }8~8ww d S )Nr   r  rk   r	  r
  r{   r   r   r|   r  r  r   r  r   Fr   r  r   r,  r}   rG  r   rH  rI  rJ  rK  rL  rM  rN  rO  rP  TrQ  rR  rS  r   rT  rX  r  rV  rW  rY  r[  r\  r]  r^  r_  r`  ra  rb  r  r  r  r?   rZ  r  r  r   rd  rc  re  rf  r  r  r  r  r   r  r  r  r  r  rg  rh  ri  rj  rk  r  r  r  r  r  r  r   r  r  r   r  r  r  r  r  r>  rl  rm  rn  ro  r%  rp  rq  rr  r   rs  rt  ru  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  rw  r   rx  ry  r   r   r|   rz  r{  rl   r-  r.  r0  r1  r  r  r  );r9   r  r   r   r   r   r   r   r   r   r   r   r|   r   r   rN   r2  r   r<   r|  r   r   r}  r~  r?   rs   rJ   r  r,   r1   r2   r   r   r   r   r[   r  r   rK   r6   r  r  rG   r   r   r  r   r3  r"  r   rw  r   r   rQ   r  rk   r	   r   r  ):rg   r  r  r  r   r  r  r   r4  r5  r6  r7  r   r  r'  r  r  r  r   r  r(  r  r  r)  r*  r&  r  ry  r  r  r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  rx  r  r  r  r  r  r  r   r8  rm   rm   rn   checkLoginWithID  sb  



,
 

P


64
0






 rc  c              
   C   s  t  }z|| }t| |d }t| jd}tjj	|d d}t|j
d |j
dksB|j
dksB|j
dksB|j
d	ksB|j
d
kr|t|d krRtdddW S d|vrZd
|d< tjj|d |dddd}t|d | r|D ]$}t|}t| tjj	|d d}	||	_|d |	_|d |	_|	  qtntjj||d |d d}
|
  tdddW S |j
dkrd}n|j
d	krd}n|j
dkrd}n|j
d
krd}td|dW S  ty } ztd tdt|iW  Y d }~S d }~ww )Nr   r{   r  r   Z12345678r  r  r   r   r   Fr  r   r   r  r  r   r  Tzdetails Saved Successfullyr  zyou are not a Trainerzyou are not a Gym Super Userzyou are not an Adminr   rl   )rP   rC  rs   r   r   r   r   r9   r   r   r   r   r   r@   r   r   r   r}  r  r  r   r   r   r   r   r	   r   )rg   rD  r   ru   r>  r  r   r  rq  rB  r  rk   r   rm   rm   rn   Userfollowers  s\   
2



	




rd  c                 C   s  z.t jdddjddddddd	d
dddddddddddddd}g }g }t }|D ]g}t|}|d dks?|d dkrctjj|d d}t	|d d t	t	|j
d t	|j  d |d< n#tjj|d d}t	|d d t	t	|j
d t	|j  d |d< ||d  ||d  q-t| |D ]%}	|	dkrt jdddjdddddddd	d
ddddddddddddddd d d! }
|	d!krt jdddjdd!dddddd	d
ddddddddddddddd d d! }
|	d"kr)t jdddjdd"dddddd	d
ddddddddddddddd d d! }
|
D ]}t|}|d dks?|d dkrctjj|d d}t	|d d t	t	|j
d t	|j  d |d< n#tjj|d d}t	|d d t	t	|j
d t	|j  d |d< |d |d#< |d |d$< d%|d&< |d	 |d'< |d |d(< |d
 |d)< |d |d*< |d |d+< |d |d(< || q+qtjj|d, }g }|D ]W}t|}d-|d.< |d/ d ur|d/ |d0< nd1|d0< |d |d(< |d2 d |d3  |d4< g }t jj|d d5d}|D ]}t|}||d  q||d6< || qtd7||d8W S  tyO } ztd9 td:t	|iW  Y d }~S d }~ww );NrV  rW  rG  r   r  rV  r   rY  rZ  r]  r`  ra  rb  programType__idr^  	createdByr_  rX  rY  r  r   rc  rd  re  rf  rg  rh  r   ri  rj  rk  )r  r  rV  -idr   r   r  planType0planCompetencyr  coachIdplanGoal	planLevelplanDurationZid__in20r\  rw  coachThumbnailr   r   r   r  r   
coachPlansTr   rB  Z
allCoachesr   rl   )r,   r   r|  r   r   setr}  r9   r   r   r   r   r   addrs   r  r   r   r   r	   )rg   planDetailsplanArrplanCoachesplanSetr   r7  r  r  setIdplanListra  r  coachDetailscoachArrcoachcoach_idcoachPlansArrr&  plrt  r   rm   rm   rn   	planLists  s~   D64
TT
T64
r  c                 C   s
  t  }|| }d}d}t| jd}z|d kr|d }tjj|d}d}t	jj
||d dd	d
ddd}	tjj|d d}
|
j}|
j}|
j}tjjdd}|j}|jdkre|d dkrd|
j}n	|d dkrn|
j}|
j}d}d}d}|	 r|	D ]%}t|}|d dks|d dkrd}d}td q}d}d}d}td q}n*t	jj
|dd}| rt|dkrd}nd}d}d}td nd}d}td td||||||||d	W S tddd W S  ty } ztd! td"t|iW  Y d }~S d }~ww )#Nr  subscriber/subscribedPlan/r{   r   r   FrX  r   rX  r_  r`  r   r   r  r   r  No Plans Subscribedr   Already Subscribed to this PlanActive Plan Already Existsr   Renewal of the active planTPlan Renewalr   CThank you for subscribing to plan. Start your one month free Trail Paid Subscriptionr   NThank you for subscribing to a Plan.Your 28 Days free trial will be activated.Free Subscription)	r   rk   paymentStatusrY  planIdrenewalr  freesubscriberre  rK  r   r   rl   )rP   rC  r   r   r   r   r9   r   r   rJ   r   r|  r   r,   rY  r   r]  r\   r  r   r  re  r   r}  rs   rL  r   r   r   r	   r   )rg   rD  r   rv   rw   r>  ru   r  r  subscribedPlanplanvalrY  r  r  r  r  re  r  rk   r  ra  
planValuesuserplanexistsr   rm   rm   rn   subscribedPlansN  sr   
&




r  c           0      C   s  t  }|| }d}d}t| jd}z2|d krA|d }tjj|d}d}g }	t	jj
||d dd	d
ddd}
t|
j tjj|d d}|j}|j}|j}|j}tjjdd}|j}|jdkrq|d dkrp|j}n	|d dkrz|j}|j}d}d}d}i }|
 rt	jj
|dj
ddgd }tjj|d}d}d}g }	g }d}| rd}d}|D ]}t|}t	jj
|d d }tjdddj
|d dddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/}|D ]} t| }!tjd0j
|!d dd1}"d2}#|"D ]}$t|$}%|#d3|%d1  7 }#q
|#d2kr&|#dd  }&nd2}&tjd4j
|!d dd5}'d2}(|'D ]}$t|$}%|(d3|%d5  7 }(q;|(d2krW|(dd  })nd2})|)|!d6< |&|!d7< |)|!d< |&|!d%< |!d+ d8ksw|!d+ d9krtjj|!d) d}*t|!d  d: tt|*jd; t|*j   d< |!d < n#tjj|!d* d}+t|!d  d: tt|+jd; t|+j   d< |!d < d=|!d>< d?|!d@< ||!dA< q|!|dB< |	!| q|
D ]+},t|,}-|-d dks|-d dkrd}|-}dC}tdD qdE}dF}d}tdG qn,t"jj
|dHd}.|. r(t#|.dkrd}nd}d}dI}tdJ ndK}dL}tdM t$d||||||||||	dNW S t$ddOdPW S  t%yh }/ zt&'dQ t$dRt|/iW  Y d }/~/S d }/~/ww )SNr  r  r{   r   r   FrX  r  r_  r`  r   r   r  r   r  r  rS  r   rT  Tr  rV  rW  rG  rY  r[  r\  r]  r^  r_  r`  ra  rb  r  r  r  r?   rZ  r  r  r   rd  rc  re  rf  r  r  r  r  r   r  r  r  r  r  rg  rh  ri  rj  rk  r  r  r  r  r  r>  r  r  r   r  r  r   r  r  r   r  r  )r   rk   r  rY  r  r  r  r  re  ra  subscriptionrK  r   r   rl   )(rP   rC  r   r   r   r   r9   r   r   r   r   r|  r   rs   r  r!  rY  ra  r   r]  r\   r  r   r  re  r   r}  r  r"  r#  r   r   r   r   rJ   rL  r   r   r   r	   )0rg   rD  r   rv   rw   r>  ru   r  r  r&  r  r  rY  ra  r  r  r  r  re  r  rk   r  ZsubscriptionDetr  r)  r*  r  ry  r   r  r  r  r  r  r  r  r  r  r  r	  r
  r  r  r  ra  r  r  r   rm   rm   rn   subscribedPrograms  s   

&




P

64


"
r  c           
   
   C   s   t  }|| }d}d}z>|d krC|d }tjj|dddddd}| r;|D ]}t|}q+t	d	|d
dW S t	dddW S t	dddW S  t
yi }	 ztd t	dt|	iW  Y d }	~	S d }	~	ww )Nr  r  r   r   r   r   r_  r`  rX  Tz!Thank you for subscribing a plan )r   rB  rk   FzPlease Subscribe to a Programr   rK  r   rl   )rP   rC  r   r   r   r|  r   r   r}  r   r   r   r	   r   )
rg   rD  r   rv   rw   ru   r  ra  r  r   rm   rm   rn   subscribedPlans1	  s&   
 

r  c              
   C   s   t  }|| }t| jd}z?|d krI|d }tjj||d d	d}|
 r3tdddW S tjj|d |d}|  td	d
dW S tdddW S  tyo } ztd tdt|iW  Y d }~S d }~ww )Nr{   r   
profuserid)likedUser_idr   Fzalready likedr   r   r  Tz
Like SavedrK  r   rl   )rP   rC  r   r   r   r   rE   r   r   r   r   r   r   r   r   r   r	   r   )rg   rD  ru   likeinfoZloginuser_idexistZlikedatar   rm   rm   rn   userlike!  s*   

r  c              
   C   s>  t  }|| }t| jd}zn|d krQg }i }tjj|d d	 }||d< tjj|d |d d	 }|dkr@d|d	< nd
|d	< |
| td|dW S g }i }	td|d  tjj|d d	 }t| ||	d< d|	d	< |
|	 td|dW S  ty }
 ztd tdt|
iW  Y d }
~
S d }
~
ww )Nr{   r  r   
totallikesr   r  r   TZdislikeF)r   r  z++++++++elser   rl   )rP   rC  r   r   r   r   rE   r   r   r  r   r   rs   r   r   r	   r   )rg   rD  ru   r  ZtotallikesArrZtotallikesObjr  ZlikesZtotallikesArr1ZtotallikesObj1r   rm   rm   rn   getuserlikes;  s:   




r  c              
   C   s0  t  }|| }zp|d krqg }g }tjdddd}|D ]I}t|}|d d|d< || t	| t
jj|d dddddd}| rg|D ]}t|}	|	d d|	d< t	|	 ||	 qNqtd	||d
W S tdddW S  ty }
 ztd tdt|
iW  Y d }
~
S d }
~
ww )Nr   r|   rj  %Y-%m-%dr   r   rX  rl  T)r   ZUserArrry  FrK  r   r   rl   )rP   rC  r9   r   r   r  r}  r~  r   rs   rJ   r   r   r   r   r   r	   r   )rg   rD  ru   ZuserArrry  r,  r   rx  ra  	userplansr   rm   rm   rn   statsOfUsersRegisterd]  s6   

$
r  c              
   C   sr  t  }|| }t| jd}z|d krg }g }|d dkrtd tj	ddj
ddd	d
ddddd}| rEt|}nd}|d|d tj	ddj
ddd	d
ddddd}| rnt|}	nd}	|d|	d tj	ddj
ddd	d
ddddd}
|
 rt|}nd}|d|d td|dW S |d dkrtd tj	dj
dddddd	dd}| r|D ]6}t|}tj	ddj
|d	 dd	ddd}| r||d t|d q||d dd qtd|dW S |d dd td|dW S |d dkrtd  tj	dj
dddddd	dd}| r|D ]9}t|}tj	ddj
|d	 dd	ddd}| rr||d t|d qD||d dd qDtd|dW S |d dd td|dW S |d d!krtd  tj	dj
dddddd	dd}| r|D ]9}t|}tj	ddj
|d	 dd	ddd}| r||d t|d q||d dd qtd|dW S |d dd td|dW S W d S tdd"d#W S  ty8 } ztd$ td%t|iW  Y d }~S d }~ww )&Nr{   programrj  rN  r_  rW  r   )Zplan_id__programTyper   Z%plan_id__programType__programTypeNamer   rX  Zplan_id__programType__idrl  ZStarter)ra  r  r   zIntermediate r   ZAdvancedT)r   r&  1z	in here 2)r  r  rV  rY  r  r`  r   F2z	in here 3rg  rK  r   r   rl   )rP   rC  r   r   r   r   rs   rJ   r   r|  r   r   r  r   rL  r   r   r,   r}  r   r   r	   r   )rg   rD  ru   ZprogramTypesZ
programArrZuserplanArrZprogramTypeSubsZstarterZprogramTypeSubs1ZintermediateZprogramTypeSubs2Zadvancedrx  ra  r  r  r   rm   rm   rn   programTypeStats{  s   

,
,
,
(
*(
*
(
*

r  c              
   C   sF  t  }|| }t| jd}zr|d krg }t }|d dkr-dt|d  d }n
dt|d  d }|	| t
|}d }|D ]1}	|d url|	d	 | |	d	< |	d	 d
k r\d
|	d	< ||	 ||	d	 k rk|	d	 }qD||	 |	d	 }qD|  td|iW S W d S  ty }
 ztd tdt|
iW  Y d }
~
S d }
~
ww )Nr{   r  r3  zkSELECT count(session_id) as totalSessions, session_id, plan_id FROM `Userplan_userexercise` where plan_id =rX  z; group by session_id order by session_id desc, plan_id desczqSELECT count(microcycle_id) as totalSessions, microcycle_id, plan_id FROM `Userplan_userexercise` where plan_id =zA group by microcycle_id order by microcycle_id desc, plan_id descZtotalSessionsr   r   r   rl   )rP   rC  r   r   r   r   r   r  r   r  r  r   reverser   r   r   r	   )rg   rD  ru   ZplandetailsZsessArrr  r  r  ZpreCntr   r   rm   rm   rn   sessionscount  s@   





r  c              
   C   s   t  }|| }z*|d kr0g }tjjddddd}|D ]}t|}|| qtd|iW S W d S  t	yQ } zt
d tdt|iW  Y d }~S d }~ww )Nr   re  r   rY  r   r   rl   )rP   rC  r,   r   r   r   r}  r   r   r   r   r	   r   )rg   rD  ru   ry  r&  ra  r  r   rm   rm   rn   plannameslist  s    

r  c              
   C   s   t  }|| }zd}|d kr d|v r|d }tdd|dW S tdddW S  tyG } ztd	 tdt|d
W  Y d }~S d }~ww )Nr   r   TzUser Logged in)r   rk   r   FUser Logged outr   r   r   rl   )rP   rC  r   r   r   r	   r   )rg   rD  ru   Zusercountryr   rm   rm   rn   sessionCheck  s   

r  c                 C   s&  t  }|| }zh|d krj|d }z4tjdddjdd|dddd	d
ddddddddddddddd}g }g }t }|D ]g}t|}	|	d dksS|	d dkrwt	jj
|	d d}
t|	d d tt|
jd t|
j  d |	d< n#t	jj
|	d d}t|	d d tt|jd t|j  d |	d< ||	d  ||	d  qAt| |D ])}|dkrtjdddjddd|d ddd	d
dddddddddddddddd!d d" }|d"krtjdddjdd"d|d ddd	d
dddddddddddddddd!d d" }|d#krAtjdddjdd#d|d ddd	d
dddddddddddddddd!d d" }|D ]}t|}|d dksW|d dkr{t	jj
|d d}
t|d d tt|
jd t|
j  d |d< n#t	jj
|d d}t|d d tt|jd t|j  d |d< |d |d$< |d |d%< d&|d'< |d
 |d(< |d |d)< |d |d*< |d |d+< |d |d,< |d |d)< || qCqt	jj|d- }g }|D ]W}t|}d.|d/< |d0 d ur|d0 |d1< nd2|d1< |d |d)< |d3 d |d4  |d5< g }tjj|d d6d}|D ]}t|}||d  q%||d7< || qtd8||d9W W S  tyi } ztd: td;t|iW  Y d }~W S d }~ww td<d=d>W S  ty } ztd: td<t|d?W  Y d }~S d }~ww )@Nr  rV  rW  rG  r   )r  rV  createdBy_id__organization_idr   rY  rZ  r]  r`  ra  rb  rf  r^  rg  r_  rX  rY  r  r   rc  rd  re  rf  rg  rh  r   ri  rj  rk  )r  r  rV  r  rh  r   r   r  ri  rj  rk  r  rl  rm  rn  ro  rp  rq  r\  rw  rr  r   r   r   r  rs  rt  Tru  r   rl   Fr  r   r  )rP   rC  r,   r   r|  r   r   rv  r}  r9   r   r   r   r   r   rw  rs   r  r   r   r   r	   )rg   rD  ru   rv  rx  ry  rz  r{  r   r7  r  r  r|  r}  ra  r  r~  r  r  r  r  r&  r  rt  r   rm   rm   rn   gymPlanLists  s   

F64
V
V
V64

r  c           
      C   s   t jd}|D ];}t|}|d }ddd tdD }t|}tjj|d }|	 r6d}t
| qtjj||dd	}	|	  qtd
ddS )Nr   r   c                 s   r   r   r
   r   rm   rm   rn   r   i  r   z$insertReferalCode.<locals>.<genexpr>r  r   zrefral Code existsr   r   TzReferal Code Insertedr   )r9   r   r   r}  r   r   r   rD   r   r   rs   r   r   r   )
rg   ZuserValuIduserObjr   r   r   ZuserRefralexistsrk   r   rm   rm   rn   insertReferalCoded  s"   

r  c              
   C   s  t  }|| }|d }z|d krt| jd}d|v r|d D ]}t| d|v r|d dkr|d dkrtj	ddddd	d
dj
||d	 |d d}| rtd |D ]U}d|v r|d dkrtjj|d d}|d |_|d |_|d	 |_|d |_d|_|  q[tjj|d d}|d |_|d |_|d	 |_|d |_d|_|  q[q%d|v r|d dkrtd tjj||d |d |d	 |d dd}	|	  q%g }
tj j
|dd}|D ] }t|}|d
 dkrd|d< |d
 dkrd|d< |
| qtdd|
dW S tdddW S tdddW S  tyA } ztd tdt|dW  Y d }~S d }~ww )Nr   r{   ZwtinforL  r   r   r   r  barbellr   index)r   r  r  z---------exists-------checkedTr   r   z---------create-----------r   rL  r  r  r  r   r  Fz Plate weights saved successfully)r   rk   plateWtszSomething went wrongr   r  r   r  )rP   rC  r   r   r   r   rs   rF   r   r   r   r   r   rL  r  r  r  r   r   r   rp  r   r   r   r   r   r	   r   )rg   rD  ru   r   Zwtdatar   Zgetwtsr:  ZupwtswtinfgetplatewtArrgetplatewtspdatapObjr   rm   rm   rn   createUserPlateWtsx  sv   


 ,










r  c           
   
   C   s  t  }|| }|d }zV|d kr[g }g }tj j|dd}|D ]0}t|}|d dkr1d|d< |d dkr;d|d< |d	 dkrF|| |d	 dkrQ|| q!td||d
W S tdddW S  t	y }	 zt
d tdt|	dW  Y d }	~	S d }	~	ww )Nr   r   r  r   Tr  r   Fr  )r   r  Z	barbelWtsr  r   r   r  )rP   rC  rF   r   rp  r   r   r   r   r   r   r	   r   )
rg   rD  ru   r   r  ZgetBarbelArrr  r  r  r   rm   rm   rn   getPlateWeights  s4   



r  c              
   C   s   g d}g d}t jjddgdd}|D ]R}t|}|d }tjj|d }| r2td qd	}d	}	|D ]}
|d }tjj||
d
d|dd}|	  q8|D ]}|	d }	tjj||dd|	dd}|	  qQqt
dddS )N)	r           r  g      @r  g      @r   )r  r  r  r   r   rT  r   r   zvalue Already eXistsr   r   r  Tz#Plate weights inserted successfullyr   )rJ   r   r   r   r}  rF   r   rs   r   r   r   )rg   Z	platesArrZ
barbellArrZactiveUsersr  r  r   ZextigwtsidxZidx1wtr  rm   rm   rn   createPlateWeights  sF   


r  c              
   C   s|  t  }|| }t| jd}d|v r|d dkr|d }z~tjj|d |d d	 }|
 r|D ]
}t|}|d }q4tjj|d	 }	|d kr|d }
tjj||
d		 }|
 rmtjj|d
}|
|_|  ntjj|
|d}|  tdddW S tjj|d}|  tdd|jdW S tdddW S  ty } ztd tdt|dW  Y d }~S d }~ww )Nr{   campIdr   campaignSourcecampaignName)r  r  r   )campaign_id)r  r   r   )r   r  Tz"Campaign Details Saved Succesfullyr   Fr  )r   rk   r  zInvalid Campiagn Detailsr   r  )rP   rC  r   r   r   r   r7   r   r   r   r   r}  rH   r   r   r   r   r   r   r   r   r	   r   )rg   rD  ru   requestJsonZ
campaignIdZcheckUrlr  r  r  Z
campvaluesr   ZusercampValZ
updateCampZcampdetailsr   rm   rm   rn   getCampUrls  sH   



r  c                 C   s   t jjdd}td|jdS )Nr   r   T)r   ZinrPrice)r\   r   r   r   r  )rg   r  rm   rm   rn   rupeeConversion%  s   r  c                 C   s   t j }|D ]R}t|}|d }tjj|d }|rY|j}tjj	|d}|j
dkr.d}n|j
dkr6d}n|j
dkr=d}tjj|d }	|	rY|	j}
tjj	|
d}||_|  qtdd	iS )
Nr   r   r  r   r   r   r   r   T)r9   r   r   r}  rJ   r   lastrX  r,   r   r  r<   r   r  r   r   )rg   ru  ru   r  r  ZuserPlanDetailsr  ZplanValZtrainerLevelZupdateFitnessValZ	fitnessIdZupdatefitnessrm   rm   rn   updateFitnessDetails+  s,   



r  c                 C   sF   g }t jjddddd}|D ]}t|}|| qtd|dS )Nr   re  r   rY  Tr  )r,   r   r   r   r}  r   r   )rg   r  ZplanNameValr  r  rm   rm   rn   	planNamesB  s   r  c                 C   s  t | jd}g }g }t }tdd}d|d< |d dkr4d|d	  d
 |d  d }t|d nq|d dkrId|d	  d
 |d  d }n\|d dkr^d|d	  d
 |d  d }nG|d dkrsd|d	  d
 |d  d }n2|d dkrd|d	  d
 |d  d |d  d }n|d dkrd|d	  d
 |d  d }nd}|| t	|}t|d t
|}|ddg |D ]%}	t|	}
||
d d|
d g ||
d d ||
d  qd|v r|d d kr|S td!||d"S )#Nr{   ztext/csv)content_typezattachment; filename="List.csv"zContent-Dispositionr  r  zi SELECT  updatedDate, COUNT(DISTINCT ID) AS NumUsers FROM  `Subscriber_user` WHERE updatedDate BETWEEN ' 	startDatez	 ' AND ' endDatezl ' GROUP BY CONCAT(MONTH(`updatedDate`), YEAR(`updatedDate`),DATE(`updatedDate`) ) ORDER BY updatedDate ASC z	---------r  zX ' GROUP BY CONCAT(MONTH(`updatedDate`), YEAR(`updatedDate`) ) ORDER BY updatedDate ASC rg  zp SELECT  updatedDate, COUNT(DISTINCT user_id) AS NumUsers FROM  `Userplan_userplan` WHERE updatedDate BETWEEN ' 45z ' AND plan_id = r  zj GROUP BY CONCAT(MONTH(`updatedDate`), YEAR(`updatedDate`),DATE(`updatedDate`) ) ORDER BY updatedDate ASC r  r   z----------------------zUpdated DatezNum of Usersrr  r  ZNumUsersZquerySet10T)r   dateArrr  )r   r   r   r   r   r  r   rs   r  r  csvwriterZwriterowr}  r~  r   r   )rg   r  r  ZcountArrr  re  r  r  r  r  r  rm   rm   rn   analyticsDataJ  sB   
*


r  c              
   C   sJ  t  }|| }|d }t| jd}|}d}z|d krddd tdD }t|}|d d	 t| }	t	
|	d
}
tjj|d dd}tjj|d d}| r_tdddW S d|  v ridksvn d|  v rtd krn n0| jd }d| d |
d }d}|d }|d |d}td|}t||| tdddW S | rtdddW S tjj|d |d |
dd}|  | jd }d| d |
d }d}|d }|d |d}td|}t||| tdddW S tdddW S  ty$ } ztd t|||t| td t|iW  Y d }~S d }~ww )!Nr   r{   zsubscriber/celebInvites/r   c                 s   r   r   r
   r   rm   rm   rn   r   }  r   zcelebInvites.<locals>.<genexpr>r  r|   r   r   r  r!  r}   Tr"  r   r   r   r   r#  r$  r   r%  r&  r'  r(  )r   r|   r   r   r)  FrK  r   rl   r*  r+  rm   rm   rn   celebInvitesn  sj   
.




r  c                 C   s:   t | }|dd d d }|dd }td|dS )N?r   =Tr   )r   r   r   )rg   r  Z
requestValr  rm   rm   rn   
fitbitauth  s   r  c              
   C   s   | j }t| zG|d }|d krGtjj|d}| r#tdddW S tjj|d}| r6tdddW S t|d}|  tdd	dW S tdd
dW S  t	ym } zt
d tdt|iW  Y d }~S d }~ww )Nr|   )news_letter_emailFzuser with this email existsr   r}   zuser with this Email ExistsTz your email is successfully savedzplease enter valid credentialsr   rl   )r   rs   rI   r   r   r   r   r9   r   r   r   r	   r   )rg   r   Zvemailru   Zuser1Z
news_emailr   rm   rm   rn   news_letter  s(   

r  rd  )r   r   Zemail.mime.imager   Zdjango.shortcutsr   	django.dbr   r   django.db.modelsr   django.confr   r  loggingr	   randomr   r  urllib.parser   django.template.loaderr   Zrest_frameworkr   django.views.decorators.csrfr   django.contrib.authr   django.contrib.auth.hashersr   r   concurrent.futuresr   r   django.core.cacher   r   Zdjango.formsr   django.templater   r   r   Zpip._internal.req.req_installr   ImportErrorZpip.req.req_installdjango.core.exceptionsr   django.httpr   r   r   django.core.mailr   r    r!   Zrest_framework.decoratorsr"   r#   r$   Zrest_framework.responser%   Zrequests_oauthlibr&   r'   r(   Zsocial_django.utilsr)   r*   Zsocial_django.viewsr+   ZPlan.modelsr,   r-   r.   r/   r0   r1   r2   Program.modelsr!  ZProgramPlanRatingZProgramDraftedPlanZProgramPlanVideosr"  r#  StratFitr3   r   ZStratFit.settingsr4   r5   StratFitOrganization.modelsr6   r7   ZSubscriber.serializersr8   Subscriber.modelsr9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   ZUserplan.modelsrJ   rK   rL   rM   ZUserProgram.modelsr   ZProgramUserTestPlanZSubscriber.AuthenticationrN   rO   rP   rQ   rR   django.views.decorators.cacherS   rT   rU   rV   rW   Zdateutil.relativedeltarX   r  Zcampaign.modelsrY   Zutility.modelsrZ   r[   r\   r]   r^   email.mime.multipartr_   email.mime.textr`   Zutility.viewsra   django.utilsrb   Zdjango.contrib.gis.geoip2rc   rz   r   r   r  r  r  r   r9  rA  rE  r  r  r$  r)  r;  rH  rM  rS  rT  rY  rc  rg  r,  ry  r  r  r  r  ZAllowAnyr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r-  r.  r/  r9  r;  r>  Zfacepyr?  rA  rB  rK  rN  rO  rP  r  rb  rc  rd  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rm   rm   rm   rn   <module>   s   $ L	 *


"
5
D

"
N n 
u



&

`

/

"
:
$

0
N



 @
  7
$
#
  D
  :

+




 $

Y




#



5





<
)

#

&

&
3





;







9

B
 
F
2

B

?

v









P

 




L


=

%
(
$
>

