U
    gI                    @   sZ  d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 d dlmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlZd d	lmZ d d
lmZ d dlmZmZ zd dlmZ W n  e k
r   d dl!mZ Y nX d dl"Z"d dl#Z#d dl$m$Z$ d dl%m%Z% d dl#m&Z& d dl'Z(d dl)m*Z* d dl)m+Z+ d dl,Z-d dlm.Z. d dl/m0Z0m1Z1m2Z2m3Z3m4Z4 eddgee1e4fedd Z5eddgee1e4fedd Z6eddgee1e4fedd Z7eddgee1e4fedd Z8eddgee1e4fedd Z9eddgee1e4fed d! Z:eddgee1e4fed"d# Z;eddgee1e4fed$d% Z<eddgee1e4fed&d' Z=eddgee1e4fed(d) Z>eddgee1e4fed*d+ Z?eddgee1e4fed,d- Z@d.d/ ZAeddgee1e4fed0d1 ZBeddgee1e4fed2d3 ZCeddgee1e4fed4d5 ZDeddgee1e4fed6d7 ZEeddgee1e4fed8d9 ZFeddgee1e4fed:d; ZGeddgee1e4fed<d= ZHeddgee1e4fed>d? ZIeddgee1e4fed@dA ZJdS )B    )render)	Food_infouserDiet_info
HealthInfoBMIInfoDietScheduleuserDietPlanDietlogDiet)IntegrityError
connection)settings)APIView)Response)never_cacheN)model_to_dict)User)api_viewauthentication_classes)logger)datetime)
smart_open)StringIO)HttpResponse)JsonResponse)transaction)StartFitAuthenticationSessionAuthenticationStartFitSessionUtilAuthResponseIsAuthenticatedGETPOSTc                 C   st  t  }z"|| }|d krtdd}d|d< | jdkrDt| W S | jd }| d}t	|}t
| tj|dd	D ]}t|d
 d tjjt|d
 t|d
 t|d t|d t|d t|d t|d t|d t|d dd\}}	t||	 q|tdddW S tdddW S W nD tk
rn }
 z$td tt|
dd W Y S d }
~
X Y nX d S )Nztext/csv)content_typezattachment; filename="food.csv"zContent-Dispositionr!   foodzUTF-8,	delimiterr   fggggggggggujew                  FoodQuantityCaloriesCarbohydratesProteinFatFibreunitr0   defaultsTfood loaded successfullysuccessmessageFUser logged outerrormsgr<   )r   get_user_insessionr   methodr   FILESreaddecodeior   nextcsvreaderprintr   objectsupdate_or_createstrr   	Exceptionr   r?   )requeststratsessionutilnutrientresponseZcsv_filecar	io_stringcolumnobjcreatede rZ   )/var/www/html/services/Nutrition/views.py	load_Food   s>    
















r\   c              
   C   s   t  }zH|| }|d kr<t }|d tdddW S tdddW S W nB tk
r } z$td tt	|dd W Y S d }~X Y nX d S )	Nz$TRUNCATE TABLE `nutrition_food_info`Tzfood deleted successfullyr;   Fr>   r?   r@   )
r   rB   r   cursorexecuter   rO   r   r?   rN   )rP   rQ   rR   r]   rY   rZ   rZ   r[   Delete_FoodG   s    


r_   c              
   C   s   t  }z^|| }t| jd}|d krRtjj|d d	 }t
dddW S t
dddW S W nB tk
r } z$td	 t
t|dd
 W Y S d }~X Y nX d S )Nutf-8namer0   zFood deleted successfullyT)r=   r<   r>   Fr?   r@   )r   rB   jsonloadsbodyrF   r   rL   filterdeleter   rO   r   r?   rN   )rP   rQ   rR   foodinfor$   rY   rZ   rZ   r[   
removeFoodZ   s    

ri   c              
   C   s\  t  }z
|| }t| jd}|d kr d|kr |d d kr tjj|d d}|d }|	 rt
d tjj|d}t
d d|kr|d |_d|kr|d |_|d |_d|kr|d |_d	|kr|d	 |_d
|kr|d
 |_d|kr|d |_d|kr|d |_|  ntjj|d d}|	 rLtdddW S tjj|d d}|  d|kr|d |_|d |_d|kr|d |_d	|kr|d	 |_d
|kr|d
 |_d|kr|d |_d|kr|d |_|  tdddW S tdddW S W nD tk
rV } z$td tt|dd W Y S d }~X Y nX d S )Nr`   idrj   Z!jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjz
:;;;;;;;;;r$   r1   r2   r3   r4   r5   r6   rb   Tz+Food name already exists please give the Idr;   zfood saved successfullyFr>   r?   r@   )r   rB   rc   rd   re   rF   r   rL   rf   existsrK   getr0   r1   r7   r2   r3   r4   r5   r6   saver   createrO   r   r?   rN   )rP   rQ   rR   rh   r0   numr$   rY   rZ   rZ   r[   addFoodl   sh    













	














rq   c               
   C   sV  t d t }z|| }|d krg }i }t| jd}d|kr\tjj	|d d}n
tj
 }d|krddkrd|krddkrt|d }t|d }|d | }	|| }
||	|
 }n|}t|}|D ]}t d	 t|}|d
  |d
< t |d
  |d }|d
 }|d }t || |d }|d }|d }d}d}t |d t|tkst|tkst|tkst|tkr|d |d< |d
 |d< t|tkr|d |d< nt|d |d< t|tkr|d |d< nt|d |d< t|tkr|d |d< nt|d |d< t|tkr>|d |d< nt|d |d< d}d}d}||d< d|d< d|d< t|d |d< t|d |d< t|d |d< |d |d< || i }q|d |d< |d
 |d< t|d |d< t|d |d< t|d |d< t|d |d< t |d
  t|}t|}t|}||| |  d }||| |  d }||| |  d }td|}td|}td|}t d t||d< t||d< t||d< |d |d< || i }qtd||d W S td!d"d#W S W nD tk
rP } z$td$ tt|d!d% W Y S d }~X Y nX d S )&NZdvggggggggggggggggggggggr`   ra   ZFood__icontainsrows pager)   Z	hererererr0   rj   r5   r2   r3   r4   r   Zggggggggggggggggggggggggggggproteincarbsfatcalories
fatPercentcarbPercentproteinPercentr1   unitsd   z{:.2f}ZgddddddgdgdgdgdgZQunatityT)r<   r=   totalFr>   r;   r?   r@   )rK   r   rB   rc   rd   re   rF   r   rL   rf   allintlenr   
capitalizetyperN   floatappendformatr   rO   r   r?   ) rP   rQ   rR   arrayr
   rh   foodloadrs   ru   offsettotr$   r   dtdietrj   ra   rx   ry   rw   rv   r{   r|   Z
fatpercentr5   ZCarbsr4   ZproteinpercentghbrY   rZ   rZ   r[   
fetch_food   s    


 


8


r   c              
   C   s   t  }z|| }|d krt| jd}g }g }|d }tjj|d}|	| t
|d |D ] }|D ]}	t|	}
|	|
 qjqbtd|dW S tddd	W S W n@ tk
r } z"td
 tdt|i W Y S d }~X Y nX d S )Nr`   ra   rr   Z
jjjjjjjjjjTr;   Fuser logged outZsuccsesr=   something wrongrA   )r   rB   rc   rd   re   rF   r   rL   rf   r   rK   r   r   rO   r   	exceptionrN   )rP   rQ   rR   rh   r   cr$   r   ir   r   rY   rZ   rZ   r[   
foodsearch(  s(    



r   c              
   C   s  t  }td z|| }td t| jd}|d }t| g }i }|d krtjj	|d}t
jj	|d}| r<tjj|d}	|	r
d|kr|d |	_|	j|d< d|kr|d |	_|	j|d< d|kr|d |	_|	j|d< d	|kr|d	 |	_|	j|d	< d
|kr"|d
 |	_|	j|d
< d|kr@|d |	_|	j|d< d|kr^|d |	_|	j|d< d|kr||d |	_|	j|d< d|kr|d |	_|	j|d< d|kr|d |	_|	j|d< d|kr|d |	_|	j|d< d|kr|d |	_|	j|d< d|kr|d |	_|	j|d< d|kr0|d |	_|	j|d< |	  ntd tjj|||d}	|	  d|kr||d |	_|	j|d< d|kr|d |	_|	j|d< d|kr|d |	_|	j|d< d	|kr|d	 |	_|	j|d	< d
|kr|d
 |	_|	j|d
< d|kr|d |	_|	j|d< d|kr0|d |	_|	j|d< d|krN|d |	_|	j|d< d|krl|d |	_|	j|d< d|kr|d |	_|	j|d< d|kr|d |	_|	j|d< d|kr|d |	_|	j|d< d|kr|d |	_|	j|d< d|kr|d |	_|	j|d< |	  |	j|d< |	j|d< |	j|d< |	j|d	< |	j|d
< |	j|d< |	j|d< |	j|d< |	j|d< |	j|d< |	j|d< |	j|d< |	j|d< |	j|d< | r
t
jj|d}
|
	rvd|kr|d |
_|
j|d< d|kr |d |
_tt|d  |
j|d< d|kr|d |
_ |
j |d< d|kr<|d |
_!|
j!|d< d|krZ|d |
_"|
j"|d< d|krx|d |
_#|
j#|d< d|kr|d |
_$|
j$|d< d|kr|d |
_%|
j%|d< d|kr|d |
_&|
j&|d< d|kr|d |
_'|
j'|d< d |kr|d  |
_(|
j(|d < d!|kr,|d! |
_)|
j)|d!< d"|krJ|d" |
_*|
j*|d"< d#|krh|d# |
_+|
j+|d#< d$|kr|d$ |
_,|
j,|d$< d%|kr|d% |
_-|
j-|d%< d&|kr|d& |
_.|
j.|d&< d'|kr|d' |
_/|
j/|d'< d(|kr|d( |
_0|
j0|d(< |
  nlt
jj|||d}
|
  d|krB|d |
_|
j|d< d|krp|d |
_tt|d  |
j|d< d|kr|d |
_ |
j |d< d|kr|d |
_!|
j!|d< d|kr|d |
_"|
j"|d< d|kr|d |
_#|
j#|d< d|kr|d |
_$|
j$|d< d|kr$|d |
_%|
j%|d< d|krB|d |
_&|
j&|d< d|kr`|d |
_'|
j'|d< d |kr~|d  |
_(|
j(|d < d!|kr|d! |
_)|
j)|d!< d"|kr|d" |
_*|
j*|d"< d#|kr|d# |
_+|
j+|d#< d$|kr|d$ |
_,|
j,|d$< d%|k	r|d% |
_-|
j-|d%< d&|k	r2|d& |
_.|
j.|d&< d'|k	rP|d' |
_/|
j/|d'< d(|k	rn|d( |
_0|
j0|d(< |
  |
j|d< |
j|d< |
j |d)< |
j!|d*< |
j"|d+< |
j#|d,< |
j$|d< |
j%|d< |
j0|d(< |
j/|d'< |
j.|d&< |
j&|d< |
j'|d< |
j(|d < |
j)|d!< |
j*|d"< |
j+|d#< |
j,|d$< |
j-|d%< t1jj	|d}| 
rt1jj|d}|rd-|k
r|d- |_2tt|d-  |j2|d-< d.|k
r|d. |_3|j3|d.< d/|k
r|d/ |_4tt|d/  |j4|d/< |  nt1jj|||d}|  d-|kr,|d- |_2tt|d-  |j2|d-< d.|krJ|d. |_3|j3|d.< d/|krx|d/ |_4tt|d/  |j4|d/< |  |j2|d-< |j3|d.< |j4|d/< t5d0d1|d2 |d3 |d4W S t5d5d6d7W S W nB t6k
r } z"t78d8 t5d9t9|i W Y S d }~X Y nX d S ):NzIam hihereeeeeeeeeeeer`   rj   )userOn_waking_upOn_waking_time	BreakFastBreakFast_timeMid_morningMid_morn_timeLunch
Lunch_timeEvening_snackEvening_snack_timeDinnerDinner_timeBed_TimeBed_Time_FoodZelseeee)user_idcreatedBy_idmodifiedBy_id
occupation	AllergiesSigns_And_SymptomsMenstrual_cycleFamily_HistoryMedical_conditionsMedicationsDietary_recallweekday_wakeupweekday_bedtimeweekend_wakeupweekend_bedtimework_timings_fromwork_timings_toSocail_habits_alcoholSocail_habits_SmokingFood_habitsFood_Dislikesworkout_timingsZSignsAndSymptomsZMenstrualcycleZFamilyHistoryZMedicalconditionsbmibodyfatpercntwater_intake_perdayTzData stored successfullyemail
first_name)r<   r=   r   ra   DietdetailsFr   r   r   rA   ):r   rK   rB   rc   rd   re   rF   r   rL   rf   r   rl   rm   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rn   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   BMIFat_percentager   r   rO   r   r   rN   )rP   rQ   rR   inforp   r   r   Zdiet_timingsZhthinfoZdiet_scheduleZheaZbminfor   rY   rZ   rZ   r[   DietDetailsD  sh   































































































































































































































































r   c              
   C   sT  t  }ztd || }g }i }|d kr
t| jd}tjj	|d d
 }t|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< |d |d< |d |d< |d |d< |d |d< |d |d< |d |d< qt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! |d!< |d" |d"< |d# |d#< |d$ |d$< |d% |d%< |d& |d&< |d' |d'< |d( |d(< qRtjj	|d d d
 }
|
D ]*}|d) |d*< |d+ |d,< |d- |d-< qPt||	|
 g }i }tjj	|d d d.
 }|D ]@}|d/ |d0< |d1 |d2< |d |d3< || ||d4< i }q|| td5|d6W S W nB tk
rN } z"td7 td8t|i W Y S d }~X Y nX d S )9Nherer`   r   r   r   rj   Zjjjjjjjjjjjjjjjjj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   FoodJsonr0   ZFoodidr   Tr;   r   rA   )r   rK   rB   rc   rd   re   rF   r   rL   rf   valuesr   r   r   r
   r   r   rO   r   r   rN   )rP   rQ   rR   r   Detailsr   
subscriberr   frkhealthr   r   ZscheduledietplanrY   rZ   rZ   r[   getDietdetails  s    




r   c                    sN  t  }z|| }t| jd}t|d  g }i }i }|d krtjj	|d d
 }|d d  |d }|d d |d< |d d |d< tjj	|d d d
 }	i }
g }|	 r|D ]4}tjj	|d d	j|d
 |d |d |d d}qn fdd|D }tj|}tjj	 d
ddd
dd}g }g }|D ]}t|d |d  |d ||d < ||d  |d |
d< |d |
d< |d
 |
d< |d |
d< |d |
d< ||
 i }
||d  q>t| ||d< tjj	|d
ddddddddd	}g }i }|D ]h}|d  }|D ]P}t|d ||  }||kr" |d < ||d!< |d |d"< || i }q"qtjj	|d#
 }| r|D ]2}td$ tjj	|d  |d! d%j|d" d&}qnd'd |D }tj|}td(|d)W S td*d+d,W S  tk
rH } z"td- td.t|i W Y S d }~X Y nX d S )/Nr`   r   r   r   rj   r   r   r   rk   	Day_indexTiming	Food_Typer0   )r   r   r   	Food_namec              	      s.   g | ]&}t |d  |d |d |d  dqS )r   r   r   r0   )r   r   r   r   r   )r   .0r   rk   rZ   r[   
<listcomp>  s   zDietPlanner.<locals>.<listcomp>r   Zdiet_idFoodnameDayindexZFoodTypefood_details)ZFood__inr1   r2   r3   r4   r5   r6   r7   hir   diet_schedule_idfood_id)ZDiet_id__inr   )r   Diet_id)Food_idc                 S   s&   g | ]}t |d  |d |d dqS )r   r   r   )r   r   r   )r   r   rZ   rZ   r[   r   C  s   Tr<   r
   FFalser;   r   rA   )r   rB   rc   rd   re   rF   rK   r   rL   rf   r   r   rl   updatebulk_creater   r   r   r   r   rO   r   r   rN   )rP   rQ   rR   r   r   r$   r   r   r
   Zfreakr   r0   r   r   objsrA   ZDietPlanZdiet_numr   r   Z	foodnamesr   ra   jZj_nameZuserDietZfood_schedulerY   rZ   rk   r[   DietPlanner  s    

4

$



*	
r   c              
   C   sv  t  }z&|| }t| jd}i }g }g }i }|d krtjj|d d	 }|d d }	t
jdj|	d	dd	dd
dddd}
t|
 |
D ]t}t|d d |d	 |d< |d
 |d< |d |d< |d |d< |d |d< |d |d< |d |d< || i }qtd|dW S tdddW S W nB tk
rp } z"td tdt|i W Y S d }~X Y nX d S )Nr`   r   r   r   rj   User__idr   Diet__idDiet__Day_indexDiet__TimingDiet__Food_TypeDiet__Food_name
Food__FoodFood__Quantity"hhhhhhhhjjjjjjjjjjjjjjjjjjjjjjjjjjr   r   ZFoodtyper   r0   r1   diet_planidTr;   Fr   r   rA   )r   rB   rc   rd   re   rF   r   rL   rf   r   r   select_relatedrK   r   r   rO   r   r   rN   )rP   rQ   rR   r   r   ZDietInfor0   Zfooddetailsr   rj   	freakDietr   rY   rZ   rZ   r[   DietplanY  s:    

(

r   c           
   
   C   s  t  }ztd || }g }i }|d kr|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 |d< |d |d< |d |d< |d |d< |d |d< |d |d< |d |d< qTt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< |d |d< |d  |d < |d! |d!< |d" |d"< |d# |d#< |d$ |d$< |d% |d%< |d |d&< q(tjj|d d }|D ]6}|d' |d(< |d) |d*< |d+ |d+< |d |d,< q.t||| |	| t
d-|d.W S t
d/d0d.W S W nB tk
r }	 z"td1 t
d2t|	i W Y S d }	~	X Y nX d S )3Nr   r   rj   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Z	detailsidr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zhealthidr   r   r   r   r   ZbmiidTr;   Fr   r   rA   )r   rK   rB   r   rL   rf   r   r   r   r   r   rO   r   r   rN   )
rP   rQ   rR   r   r   r   r   r   r   rY   rZ   rZ   r[   appDietdetails  sv    



r   c           	   
   C   sF  t  }ztd || }|d }g }i }|d krtjdj|ddddddd	d
d}t| |D ]t}t|d d |d |d< |d |d< |d |d< |d	 |d< |d
 |d< |d |d< |d |d< || i }qft	d|dW S t	dddW S W nB t
k
r@ } z"td t	dt|i W Y S d }~X Y nX d S )Nr   rj   r   r   r   r   r   r   r   r   r   r   r   r   Z	Food_typer   r0   r1   r   Tr;   Fr   r   rA   )r   rK   rB   r   rL   r   rf   r   r   r   rO   r   r   rN   )	rP   rQ   rR   rj   r   r   r   r   rY   rZ   rZ   r[   r     s4    
(

r   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   rZ   )r   colrZ   rZ   r[   r     s     z dictfetchall.<locals>.<listcomp>c                    s   g | ]}t t |qS rZ   )dictzip)r   rowcolumnsrZ   r[   r     s   )descriptionfetchall)r]   rZ   r   r[   dictfetchall  s    
r  c              
   C   s  t  }ztd || }|d }g }i }t }d}|| t|}t| |D ]:}	t|	}
|
d |d< |
d |d< |
d |d< |
d |d< |
d	 |d
< |
d |d< |
d d kr0t	|
d }|}|D ]N}|d D ]}|rd}td qd} qq|dkr||d<  q qd|d< q|
| i }qV|
d |d< |
d |d< |
d |d< |
d |d< |
d	 |d
< |
d |d< d}||d< |
| i }qVtd|dW S  tk
r } z"td tdt|i W Y S d }~X Y nX d S )Nr   rj   zSELECT *, Subscriber_user.id as user  FROM `Subscriber_user` right join Nutrition_bmiinfo on Subscriber_user.id = Nutrition_bmiinfo.user_id left join Nutrition_diet on Subscriber_user.id = Nutrition_diet.user_id ORDER BY Subscriber_user.id DESCplan_idr   r   r   ra   r   Zfatpercentager   r   r   dietsr)   hhhhr*   Statusr   Tr;   r   rA   )r   rK   rB   r   r]   r^   r  r   rc   rd   r   r   rO   r   r   rN   )rP   rQ   rR   rj   r   detailsr   Znutresultsr   nutrichoiceobjectlistghr   r  rY   rZ   rZ   r[   nutrientlist  sd    








r  c              
   C   s  t  }z||| }|d krrt| jd}i }i }g }g }g }g }d|krb|d dkrb|d }	tjdj	|	d
dddd	d
d}
|
r|
D ]}|| t|d  q|
rg }|D ]}||d  q|D ]Z}|d |d< |d |d< |d |d< |d	 |d< |d
 |d
< |d |d< || i }q|D ]}tjj	|d
 }g }|r*|D ]}|d |d< |d d kr\t|d }|}|D ]}t|d }|j}|dkrd}||d< nR|d D ]&}|rd}t|d n
d} qq|dkr
||d<  qnd|d< q|| i }q\nd|d< d|d< || i }q6|D ]v}|d |d< |d |d< |d |d< |d |d< |d
 |d
< |d |d< |d |d< |d |d< td|d  W S n|d }tjdj	|d
dddd	d
d}g }|r.|D ]&}|| ||d  t| q|D ]j}t|d d |d |d< |d |d< |d |d< |d	 |d< |d
 |d
< |d |d< || i }q2tjj	|d d
 }g }|r|D ]}|d |d< |d d krt|d }|}|D ]}t|d }|j}t| |dkr*d|d< nP|d D ]$}|rJd}td n
d} qXq2|dkrr||d<  q~nd|d< q|| i }n&|d |d< d}||d< || i }qnd|d< d|d< || i }|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W S tdddW S W nB tk
r } z"td  td!t|i W Y S d }~X Y nX d S )"Nr`   ra   rt   r   )Zuser__first_name__icontainsuser__first_nameuser__emailr   r   r   user__idr   ZFatpercentager   r   rj   r  r   r  Tr   r  r)   r  r*   r;   )Zuser__email__icontainsZjjjjjjjjjjjjjjjjjjjjjFr   r   r   rA   )r   rB   rc   rd   re   rF   r   rL   r   rf   r   r   rK   r
   npr   sizer   rO   r   r   rN   )rP   rQ   rR   r   nutrir   r   ArrayZdetails_arrayr  loadZnmsr   r   rp   r   ZDiet_detailsr  r	  r
  r  empty_arrayis_emptyr  r   r   mailZbemsrY   rZ   rZ   r[   nutrisearch@  s   

$









$












r  c              
   C   s  t  }zptd || }t| jd}tjj	|d d
 }|d d }i }g }|rftjj	|d}| rtjj|d d}	t|d	 |	_|	j|d
< |	j|d< |d d |d< |	j|d< |	  || td tdd|dW S tjj|t|d	 d}|  |j|d< |j|d
< |j|d< |d d |d< t| || tdd|dW S ntdddW S W nB tk
r }
 z"td tdt|
i W Y S d }
~
X Y nX d S )Nr   r`   r   r   r   rj   r   rk   r   r   r0   ZheteeeeeeeeeeeeTzsuccessfully updated the diet)r<   r=   r
   )r   r   zsuccessfully created the dietFr>   r;   r   rA   )r   rK   rB   rc   rd   re   rF   r   rL   rf   r   r
   rl   rm   dumpsr   r   rj   rn   r   r   ro   rO   r   r   rN   )rP   rQ   rR   r   r   rj   r  r   r   r$   rY   rZ   rZ   r[   mealinfo  sF    









r  c              
   C   s.  t  }ztd || }t| jd}tjj	|d d
 }|d d }i }g }|rtjj	|d
 }| r|D ]J}	t|	}
|
d |d< |d d |d< |
d	 |d
< |
d |d< || qxtd|dW S tdddW S W nB tk
r( } z"td tdt|i W Y S d }~X Y nX d S )Nr   r`   r   r   r   rj   r   r   r   r0   Tr   Fr>   r;   r   rA   )r   rK   rB   rc   rd   re   rF   r   rL   rf   r   r
   rl   r   r   r   rO   r   r   rN   )rP   rQ   rR   r   r   rj   r  r   r0   r   r$   rY   rZ   rZ   r[   getmealinfo  s0    

r  c              
   C   s  t  }zZtd || }|d }i }g }|rPtjj|d }| r|D ]<}t|}|d |d< |d |d< |d |d< |d |d< qRt	
|d }	t|	d d	  |	}
|
D ]T}t|d	 d
 |d	 D ]}|rd}qd} qq|dkr||d<  qqd|d< q|| n(d}||d< || td|ddW S td|dW S tdddW S W nB tk
r } z"td tdt|i W Y S d }~X Y nX d S )Nr   rj   r   r   r   r   r0   r)   r  Zhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhr*   r  r   Fzyou dont have a diet plan)r<   r
   r=   Tr   r>   r;   r   rA   )r   rK   rB   r
   rL   rf   r   rl   r   rc   rd   r   r   rO   r   r   rN   )rP   rQ   rR   rj   r  r   r0   r   r$   r	  r
  r   datar  rY   rZ   rZ   r[   getmeal4  sP    





r  c                 C   s  dd l }dd l}t }zr|| }|d }i }g }i }|rxt| jd}	t|	d  |	d }
|	|
}|j
dd |j|jddd}t|  t }|j|dd	 t|  t| }t| tj|d
dD ]}t|d d tjjt|d t|d t|d t|d t|d t|d t|d t|d t|d dd\}}t|| qtdddW S tdddW S W nD tk
r } z$td tt|dd W Y S d }~X Y nX d S )Nr   rj   r`   r$   T)Zinplace)regexF)indexr%   r&   r(   r)   r*   r+   r,   r-   r.   r/   r8   r:   r;   r>   r?   r@   )pandasnumpyr   rB   rc   rd   re   rF   rK   Zread_csvZdropnareplacenan	to_stringr   Zto_csvgetvaluerG   rH   rI   rJ   r   rL   rM   rN   r   rO   r   r?   )rP   pdr  rQ   rR   rj   r  r   ddr   pathdfZ
car_bufferrU   rV   rW   rX   rY   rZ   rZ   r[   	pandafoodg  sR    









	
r*  c              
   C   s	  t  }t| jd}td 	zn|| }i }g }i }d|krb|d d krbtjj	|d d
 }|rNtjj|d d}d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d	|kr|d	 d kr|d	 |_|  |j|d
< |j|d< |j|d< |j|d	< |j|d< || td|ddW S tdddW S n,d
|k	r||d
 d k	r||d
 }tjj	|dj	|d dj	|d dj|d d}|rPtjj	|d
 }	t| |	r<|	D ]z}
t|
}|d dkrt|d  |d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }qg }|	D ]n}
t|
}|d dkrb|d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }qbg }|	D ]n}
t|
}|d dkr|d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }qg }|	D ]n}
t|
}|d dkrR|d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }qRg }|	D ]n}
t|
}|d dkr|d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }qg }|	D ]n}
t|
}|d dkrB|d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }qBg }|	D ]n}
t|
}|d dkr|d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }qtd|ddW S tdddW S 	qtjj|d}d|kr|d d kr|d |_d|kr|d d kr|d |_d|kr|d d kr|d |_d	|kr|d	 d kr|d	 |_|  tjj	|d
 }	|		rh|	D ]z}
t|
}|d dkr
t|d  |d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }q
g }|	D ]n}
t|
}|d dkr|d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }qg }|	D ]n}
t|
}|d dkr|d
 |d
< |d |d< |d |d< |d |d< |d |d< || ||d< i }qg }|	D ]n}
t|
}|d dkr~|d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }q~g }|	D ]n}
t|
}|d dkr|d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }qg }|	D ]n}
t|
}|d dkrn|d |d< |d |d< |d |d< |d |d< |d
 |d
< || ||d< i }qng }|	D ]n}
t|
}|d dkr|d
 |d
< |d |d< |d |d< |d |d< |d |d< || ||d< i }qtd|ddW S tdd|d W S ntdd!|d W S W nD tk
	r } z$td" tt|dd# W Y S d }~X Y nX d S )$Nr`   gddgggggggggddggZdiet_time_idrk   Z	food_typeZ	day_indexr   ZtimingZ	food_namerj   TzSuccessfully updatedr<   r  r=   Fzid doesn't existr;   r   )r   )r   )r   0r   r   r   123456Successfully addedr<   r=   r  please give the idr?   r@   )r   rc   rd   re   rF   rK   rB   r   rL   rf   r   rm   r   r   r   r   rn   rj   r   r   r   r   ro   rO   r   r?   rN   )rP   rQ   r   rR   r  r   r0   r   r  r$   r   dgrY   rZ   rZ   r[   Food_Timings  s   










2


















r8  c              
   C   sV  t  }t| jd}td z|| }i }i }g }g }|rd|kr|d d krtjj	|d d
 }|r|D ]v}	t|	}
|
d dkr|t|
d  |
d |d< |
d |d< |
d |d< |
d |d< |
d	 |d	< || ||d< i }q|g }|D ]j}	t|	}
|
d d
kr|
d |d< |
d |d< |
d |d< |
d |d< |
d	 |d	< || ||d
< i }qg }|D ]n}	t|	}
|
d dkrp|
d |d< |
d |d< |
d |d< |
d |d< |
d	 |d	< || ||d< i }qpg }|D ]n}	t|	}
|
d dkr|
d |d< |
d |d< |
d |d< |
d |d< |
d	 |d	< || ||d< i }qg }|D ]n}	t|	}
|
d dkr`|
d |d< |
d |d< |
d |d< |
d |d< |
d	 |d	< || ||d< i }q`g }|D ]n}	t|	}
|
d dkr|
d |d< |
d |d< |
d |d< |
d |d< |
d	 |d	< || ||d< i }qg }|D ]n}	t|	}
|
d dkrP|
d |d< |
d |d< |
d |d< |
d |d< |
d	 |d	< || ||d< i }qPtd|ddW S tdd|dW S ntdddW S ntdd|dW S W nD tk
rP } z$td tt|dd W Y S d }~X Y nX d S )Nr`   r+  rj   r   r   r-  r   r   r   r.  r/  r0  r1  r2  r3  Tr4  r,  Fzuser not existr5  r   r;   r6  r?   r@   )r   rc   rd   re   rF   rK   rB   r   rL   rf   r   r   r   r   rO   r   r?   rN   )rP   rQ   r   rR   r  r$   r   r   r   r   r7  rY   rZ   rZ   r[   getFood_Timings  s    








r9  c              
   C   s   t  }t| jd}td zn|| }|r|d|krj|d d krjtjj	|d d
 }tdddW S tdd	dW S ntdd
dW S W nB tk
r } z$td tt|dd W Y S d }~X Y nX d S )Nr`   r+  rj   rk   TzDeleted successfullyr;   FzPlease give the idr   r?   r@   )r   rc   rd   re   rF   rK   rB   r   rL   rf   rg   r   rO   r   r?   rN   )rP   rQ   r   rR   r   rY   rZ   rZ   r[   deleteFood_Timings  s    

r:  )Kdjango.shortcutsr   ZNutrition.modelsr   r   r   r   r   r   r	   r
   	django.dbr   r   StratFitr   rest_framework.viewsr   rest_framework.responser   django.views.decorators.cacher   rc   django.forms.modelsr   ZSubscriber.modelsr   rest_framework.decoratorsr   r   Zpip._internal.req.req_installr   ImportErrorZpip.req.req_installrI   rG   r   r   r   r!  r  django.httpr   r   r   r&  r   Subscriber.Authenticationr   r   r   r   r    r\   r_   ri   rq   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r*  r8  r9  r:  rZ   rZ   rZ   r[   <module>   s   (

&





A

u



  X

R

d

0

H




:

 '

*



0

1

 k

o

