U
    c<X                    @   s  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 d dlmZ d dlmZ d d	lmZ d d
lmZmZmZ d dlmZ d dlmZ d dlmZ d dlT ddlT d dlZeeZd dlmZ d dl m!Z!m"Z" d dlmZmZmZ d dl#m$Z$ d dl%Z&d dl'm(Z(m)Z) d dlm*Z* ddl+T d dlm,Z, d dl#m-Z- d dl.Z.d dl/Z/d dl0T dd Z1G dd dej2Z3G dd dej4Z5G dd dej4Z6G d d! d!ej4Z7G d"d# d#ej4Z8G d$d% d%ej4Z9G d&d' d'ej4Z:G d(d) d)ej4Z;G d*d+ d+ej4Z<G d,d- d-ej2Z=G d.d/ d/ej2Z>G d0d1 d1ej2Z?G d2d3 d3ej4Z@G d4d5 d5ej4ZAG d6d7 d7ej4ZBG d8d9 d9ej4ZCG d:d; d;ej4ZDG d<d= d=ej4ZEG d>d? d?ej4ZFG d@dA dAej4ZGG dBdC dCej4ZHG dDdE dEej4ZIG dFdG dGej4ZJd dlmZ dHdI ZKdS )J    )month)NONE)PartialIteratorWrapperrender)HttpResponse)APIView)Responsestatus)MultiPartParser)r   genericspermissions)partial)send_push_notification)*   N)mail)AllowAnyIsAuthenticated)r   r   r   )Q)OrderingFilterSearchFilter)Http404)filters)Fc                 C   s>   t jj|d}d|_|  |jdkr4d|_|  tdhS )N)pkTz#5EFFFFzBackground colour changed)MagazineInfoobjectsgetis_promotedsaveZbackground_colorr   )requestr   Zmag r#   [/var/www/html/staging.mfahmagazine.net/magazine_api/magazine_web_admin/magazineapp/views.pyvalidateBackground%   s    
r%   c                   @   s   e Zd ZeZdddZdS )MagazineCategoryAPIViewNc              
   C   s   z:t j }| j|dd}dtd |jd}t|tjdW S  t	k
r } z6t
dt|  dtd d	}t|tjd W Y S d }~X Y nX d S )
NTmanyr   messager   r)   datar
   z!MagazineCategoryAPIView:error => r   r   r)   )MagazineCategoryr   allserializer_classZmagazinecategory_messager+   r	   r   HTTP_200_OK	ExceptionloggererrorstrExp_MESSAGEHTTP_400_BAD_REQUESTselfr"   idusers
serializercontexter#   r#   r$   r   :   s    
zMagazineCategoryAPIView.get)N)__name__
__module____qualname__MagazineCategorySerializerr/   r   r#   r#   r#   r$   r&   6   s   r&   c                   @   s   e Zd ZeZdddZdS )SystemCategoryAPIViewNc              
   C   s   z:t j }| j|dd}dtd |jd}t|tjdW S  t	k
r } z6t
dt|  dtd d	}t|tjd W Y S d }~X Y nX d S )
NTr'   r   r)   r*   r
   zSystemCategoryAPIView:error => r   r,   )SystemCategoryr   r.   r/   Zsystemcategory_messager+   r	   r   r0   r1   r2   r3   r4   r5   r6   r7   r#   r#   r$   r   I   s    
zSystemCategoryAPIView.get)N)r>   r?   r@   SystemCategorySerializerr/   r   r#   r#   r#   r$   rB   F   s   rB   c                   @   s   e Zd ZeZdddZdS )PromotionalMagazineAPIViewNc              
   C   s   z:t j }| j|dd}dtd |jd}t|tjdW S  t	k
r } z6t
dt|  dtd d	}t|tjd W Y S d }~X Y nX d S )
NTr'   r   r)   r*   r
   z$PromotionalMagazineAPIView:error => r   r,   )r   r   r.   r/   ZPromotionalMagazine_messager+   r	   r   r0   r1   r2   r3   r4   r5   r6   r7   r#   r#   r$   r   X   s    
zPromotionalMagazineAPIView.get)N)r>   r?   r@   MagazineInfoSerializerr/   r   r#   r#   r#   r$   rE   U   s   rE   c                   @   s   e Zd ZejfZdd ZdS )MagazinebySystemcategoryAPIViewc           
   
   C   s  z| j jdd }| j jdd }| j jdd }|r|rt| _tjj||dd	 }| j|d|||dd}d	t
d
 |jd}t|tjdW S |rt| _tjj|d }| j|dd|id}d	t
d
 |jd}t|tjdW S |r<t| _tjj|d }| j|dd|id}d	t
d
 |jd}t|tjdW S t| _tj  }| j|dd|id}d	t
d
 |jd}t|tjdW S W n\ tk
r }	 z<tdt|	  dtd
 t|	d}t|tjd W Y S d }	~	X Y nX d S )Nuser_idsystem_category_idmagazine_category_id)system_categorymagazine_categoryrK   T)rI   rJ   rH   r(   r<   r   r)   r*   r
   r9   z)MagazinebySystemcategoryAPIView:error => r   )r   r)   r3   )r"   query_paramsr   "SystemAndMagazineDetailsSerializerr/   r   r   filtervaluesdistinctZmagazinebysystem_messager+   r	   r   HTTP_201_CREATEDrD   rC   r.   SystemppCategorySerializerr-   r1   r2   r3   r4   r5   r6   )
r8   r"   rH   rI   rJ   manginer;   r<   Zsys_categoryr=   r#   r#   r$   r   g   s>    z#MagazinebySystemcategoryAPIView.getN)r>   r?   r@   r   r   permission_classesr   r#   r#   r#   r$   rG   d   s   rG   c                   @   s   e Zd ZeZdddZdS )MagazineDetailAPIViewNc                 C   sn  | j jdd }| j jdd }|s<ddd}t|tjdS tjj|d	 }|r|rt
jj||d	 }tjj||d	 }tjj||d	d
 }	tjj||d }
tjj||d	d }tjj||d	d }|rtjj|djd	d ntjj|djdd |r(tjj|djd	d ntjj|djdd |	r\tjj|djd	d ntjj|djdd |
rtjj|djd	d ntjj|djdd |rtjj|djd	d ntjj|djdd tjj|d}t|d|idd}dtd |jd}t|tjdS |rLt|dd}dtd |jd}t|tjdS |sjddd}t|tjdS d S )NrH   magazine_idr   zplease enter magazine id.r,   r
   rN   	magazinesr:   T)magazineInfosr:   is_buyedmagazineuser)r\   r:   	is_rented)r\   r:   is_subscription)is_bookmarkF)is_favorite)is_purchase)is_read_status)ra   r`   )r<   r(   r   r)   r*   r'   Record is not available.)r"   rO   r   r	   r   r0   r   r   rQ   lastMagazineBookmarkMagazineFavoriteMagazinePurchaseInfofirstMagazineReadStatusupdatemagazineSerializerZmagazinedetail_messager+   AlldataSerializer)r8   r"   formatrH   rY   r<   ZMagazineobjZuserbookobjZuserfauvariteobjZuserpurchaseobjZreadstatusobjZ	rentedobjsubscriptionobjZmagazinedataserializersr#   r#   r$   r      sN    

zMagazineDetailAPIView.get)N)r>   r?   r@   ro   r/   r   r#   r#   r#   r$   rX      s   rX   c                   @   s   e Zd ZeZdddZdS )MagazineBookmarkAPIViewNc           
   
   C   s  zb|j dd }|j }|d |d< |d |d< |d |d< tjj|d d }|spdd	d
}t|tjdW S |dkrt	|d}|
 r|  dtd |j d}t|tjdW S ddd
}t|tjdW S n|dkrHtjj|j|d d }|r,tjj|jd  dtd d
}t|tjdW S ddd
}t|tjdW S nddd
}t|tjdW S W nV tk
r }	 z6tdt|	  dtd d
}t|tjd W Y S d }	~	X Y nX d S )Nrc   magazines_idr[   users_idr:   page_numberrN   r   User record is not available.r,   r
   Tr+   r   r)   r*   Record is not availableFr:   r[   z"Please enter correct bookmark typez!MagazineBookmarkAPIView:error => )r+   r   Userr   rQ   rh   r	   r   r0   MagazineBookmarkSerializeris_validr!   Zbookmark_enter_messageri   r9   deleteZbookmark_delete_messager1   r2   r3   r4   r5   r6   )
r8   r"   r9   rc   r+   	usersdatar<   r;   bookmarkobjr=   r#   r#   r$   post   s@    





zMagazineBookmarkAPIView.post)N)r>   r?   r@   r}   r/   r   r#   r#   r#   r$   rt      s   rt   c                   @   s   e Zd ZeZdddZdS )BookmarkListAPIViewNc              
   C   s   z:t j }| j|dd}dtd |jd}t|tjdW S  t	k
r } z6t
dt|  dtd d	}t|tjd W Y S d }~X Y nX d S )
NTr'   r   r)   r*   r
   zBookmarkListAPIView:error => r   r,   )ri   r   r.   r/   ZBookmark_list_messager+   r	   r   r0   r1   r2   r3   r4   r5   r6   )r8   r"   r9   orderobjrs   r<   r=   r#   r#   r$   r   +  s    
zBookmarkListAPIView.get)N)r>   r?   r@   BookmarkListSerializerr/   r   r#   r#   r#   r$   r   '  s   r   c                   @   s   e Zd ZeZdddZdS )MagazineFavoriteAPIViewNc           
   
   C   s"  z|j dd }|j }|d |d< |d |d< |d |d< tjj|d d }|spdd	d
}t|tjdW S |dkrt	jj|j
|d d }|d krt|d}| r|  dtd |j d}t|tjdW S ddd
}t|tjdW S n&t|}dd|j d}t|tjdW S n|dkrtjj|d d }t	jj|j
|d d }|rt	jj|j
d  dtd d
}t|tjdW S ddd
}t|tjdW S nddd
}t|tjdW S W nV tk
r }	 z6tdt|	  dtd d
}t|tjd W Y S d }	~	X Y nX d S )Nrd   ru   r[   rv   r:   rw   rN   r   rx   r,   r
   Tr{   ry   r   r)   r*   rz   z-Favourite record already create successfully.Fz"Please enter correct favorite typez!MagazineFavoriteAPIView:error => )r+   r   r|   r   rQ   rh   r	   r   r0   rj   r9   MagazineFavoriteSerializerr~   r!   ZFavorite_enter_messager   ZFavorite_delete_messager1   r2   r3   r4   r5   r6   )
r8   r"   r9   rd   r+   r   r<   Zfavoriteobjr;   r=   r#   r#   r$   r   =  sL    






zMagazineFavoriteAPIView.post)N)r>   r?   r@   r   r/   r   r#   r#   r#   r$   r   9  s   r   c                   @   s   e Zd ZeZdddZdS )MagazinePurchaseAPIViewNc              
   C   sZ  z|j dd }|j }|d |d< |d |d< |d |d< tjj|d d}|sldd	d
}t|tjdW S tjj|d |d d	 }|r|dkr>t
jj|d |d d	 }|d krt|d}	|	 r|	  dtd |	j d}t|tjdW S ddd
}t|tjdW S n&t|}	dd|	j d}t|tjdW S n|dkrtjj|d d	 }t
jj|jd	 }
|
rt
jj|
jd  dtd d
}t|tjdW S ddd
}t|tjdW S nddd
}t|tjdW S nddd
}t|tjdW S W nV tk
rT } z6tdt|  dtd d
}t|tjd W Y S d }~X Y nX d S )Nre   rY   r\   rH   r:   rw   rN   r   rx   r,   r
   r9   r:   T)r\   r:   ry   r   r)   r*   rz   z-Purchase record already create  successfully.Fr:   z"Please enter correct purchase typez'User and magazine id are not available.z!MagazinePurchaseAPIView:error => )r+   r   r|   r   rQ   r	   r   r0   r   rh   rk   PurchaseInfoSerializerr~   r!   Purchase_enter_messager9   r   ZPurchase_delete_messager1   r2   r3   r4   r5   r6   )r8   r"   r9   re   r+   r   r<   Z	pagesdataZpurchaselistobjr;   purchaseobjr=   r#   r#   r$   r   q  sT    








zMagazinePurchaseAPIView.post)N)r>   r?   r@   r   r/   r   r#   r#   r#   r$   r   m  s   r   c                   @   s$   e Zd ZeZdddZdddZdS )MyLibraryAPIViewNc              
   C   s   z|j d |j d< |j d |j d< t|j d}| r`|  dtd |j d}t|tjd	W S d
td d}t|tjd	W S W nT t	k
r } z6t
dt|  d
td d}t|tjd	 W Y S d }~X Y nX d S )NrH   r:   rY   r\   ry   r   r)   r*   r
   r   r,   MyLibraryAPIView:error => )r+   r   r~   r!   Zmylibrary_messager	   r   r0   Zmylibrary_errormessager1   r2   r3   r4   r5   r6   )r8   r"   r9   r;   r<   r=   r#   r#   r$   r     s    zMyLibraryAPIView.postc              
   C   s  z&| j jdd }| j jdd }|sBddd}t|tjdW S tjj|d	 }t
jj|d}|dkrtjj|djd	d
d}tjj|d }	t|	d
d}
d|
ji}dtd |d}n\|dkrt
jj|d
d}t|d
d}
d|
ji}dtd |d}n|dkr^tjj|djd	d
d}tjj|d }t|d
d}
d|
ji}dtd |d}ng }g }g }g }t
jj|djdd
d}tjj|djd	d
d}	tjj|djd	d
d}t|t|	t|}t|d tjjt|d}t|d
dj}||||d}dtd |d}t|tjdW S  tk
r~ } z6tdt|  dtd d}t|tjd W Y S d }~X Y nX d S )NrH   filter_typer   Please enter correct user id.r,   r
   r   Bookmarkr[   Tflat)id__inr'   r   r)   r*   Purchaser:   r]   	Favouriter\   z<==============@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)r   r   r   library_allr   ) r"   rO   r   r	   r   r0   r   r   rQ   rh   rk   ri   values_listr.   magazineliberarySerializerr+   ZBookmark_messageMagazinePurchaseInfoSerializerr   rj   ZFavourite_messagesetunionprintlistZalldata_messager1   r2   r3   r4   r5   r6   )r8   r"   r9   useridr   r<   magazineobjr   Zbookmark_id_lir   r;   dictZfavorite_id_liZfavouriteobjZbookmarkdataZfavouritedataZpurchasedatar   Zall_liberaryZall_liberary_objr=   r#   r#   r$   r     sV    






zMyLibraryAPIView.get)N)N)r>   r?   r@   r   r/   r   r   r#   r#   r#   r$   r     s   
r   c                       sJ   e Zd Zej ddddZeZ	e
jgZddddgZ fddZ  ZS )MagazineSearchAPIViewnameZauthor__author_nameZsystem_category__category_nameZ magazine_category__category_namec              
      s  z| j jdd }|r<tjj|d }|r|tjj|djtdd d t	 j
|f||}dtd |jd|_|W S tjt|dt|d	B t|d
B t|dB  }|rtjj|d}tjj|jdj|jd t	 j
|f||}dtd |jd|_|W S t	 j
|f||}dtd |jd|_|W S n|tj  dd d }tjjdddd d }	t|	ddj}
||
d}t	 j
|f||}dtd |d|_|W S W nV tk
r } z6tdt|  dt|d}t|tjd W Y S d }~X Y nX d S )Nsearch)Ztitle__icontainscountr   )r   r)   r*   )Zname__icontains)Zauthor__author_name__icontains)Z)system_category__category_name__icontains)Z+magazine_category__category_name__icontains)titlerN   )r\   z-count   T)r]   z-magazineInfos
   r'   Zsearch_dataZpuchase_datazMagazineSearchAPIView:error => r   r,   r
   )r"   rO   r   SearchMagazineinfor   rQ   rh   rn   r   superr   Zsearch_messager+   r   r   creater9   r.   rR   order_byrk   r   r1   r2   r3   r4   r	   r   r6   )r8   r"   argskwargsr   Zsearch_inforesponseZ	searchobjZsearchidZpurchase_infor;   Zdict11r=   r<   	__class__r#   r$   r   !  s<    4

zMagazineSearchAPIView.list)r>   r?   r@   r   r   r.   r   querysetSearchMagazineDetailSerializerr/   r   r   filter_backendssearch_fieldsr   __classcell__r#   r#   r   r$   r     s
   r   c                   @   s   e Zd ZeZdddZdS )NoSearchAPIViewNc              
   C   s   z`| j jdd }|s@g g d}dtd |d}t|tjdW S dtd d}t|tjdW S W nT tk
r } z6t	
d	t|  dt|d}t|tjd W Y S d }~X Y nX d S )
Nr   r   r   r)   r*   r
   r   r,   zNoSearchAPIView:error => )r"   rO   r   Znosearch_messager	   r   r0   Znosearch_error_messager1   r2   r3   r4   r6   )r8   r"   r9   r   r   r<   r=   r#   r#   r$   r     s    
zNoSearchAPIView.get)N)r>   r?   r@   r   r/   r   r#   r#   r#   r$   r     s   r   c                   @   s$   e Zd ZeZdddZdddZdS )MagazinePurchaseInfoAPIViewNc              
   C   s   z| j jdd }|s0ddd}t|tjdW S tjj|d	 }|s`ddd}t|tjdW S t
|dd	}d
d|jd}t|tjdW S  tk
r } z6tdt|  dtd d}t|tjd W Y S d }~X Y nX d S )NrH   r   r   r,   r
   r   rg   Fr'   r   z)magazine purchase data found successfullyr*   %MagazinePurchaseInfoAPIView:error => r)   )r"   rO   r   r	   r   r0   rk   r   rQ   rh   "MagazinePurchaseInfodataSerializerr+   r1   r2   r3   r4   r5   r6   )r8   r"   r9   rH   r<   Z
purchadatars   r=   r#   r#   r$   r     s     

zMagazinePurchaseInfoAPIView.getc              
   C   s	  	zz|j d |j d< |j dd |j d< |j dd |j d< |j d |j d< ztjd}W n tjk
rv   d}Y nX d	|j d  |j }||j d
< |j d
 |j d
< tjj|j d d	 }|j d dkrjt
j
 |j d< |j d |j d< |j dd |j d< |j dd |j d< |j dd |j d< |j dd |j d< |j d sX|j d rP|j d }t
j
  }tjt|j d dt|r|nddB 	 }|j|  kr|jksn ddd}	t|	tjdW S |j|j d< tt|j d t|j d }
t|j d t|
 }|j|j d< t|
d|j d< t|d|j d< d|j d < tjj|j d |j d dd!	 }|rdd"d}	t|	tjdW S t|j d#}| rH| }tjj|jd	 }t|}|j d }tjj|d	 }d$}d%|j d&|j d'}t||| |j||jd(}t |!  d)d*|j d+}	t|	tjdW S dd,|j"d+}	t|	tjdW S n|j d- dkrt
j
 |j d.< t
j
 t
j#d/d0 |j d1< t$|j dd |j d2< tjj|j d |j d dd3	 }|r dd4d}	t|	tjdW S t|j d#}| r| }tjj|jd	 }t|}|j d }tjj|d	 }d$}d%|j d5|j d6}t||| |j||jd(}t |!  d)d7|j d+}	t|	tjdW S dd,|j"d+}	t|	tjdW S n|j d8 dkrt
j
 |j d.< d9|j d< |j d: }t%jj|d	 }|j|j d;< |sJdd<d}	t|	tjdW S |j&}t'|j(t'd= t'd> |j d>< |j(}d?t$| }t
j
 t
j#|d0 |j d1< |j)|j d@< tjj|j d dddA	 }|rd)dBd}	t|	tjdW S t|j d#}| rtjj|j d dddAj*dCdD | }tjj|jd	 }t|}|j d }tjj|d	 }d$}d%|j dE}t||| |j||jd(}t |!  d)dF|j d+}	t|	tjdW S dd,|j"d+}	t|	tjdW S n|j dG dk	r`|j d |j dH< |j dd |j d< |j dd |j d< |j dd |j d< |j dd |j d< tjj|j d d	 }|s~ddId}	t|	tjdW S |j d s|j d r|j d }t
j
  }tjt|j d dt|r|nddB 	 }|j|  kr|jksn ddd}	t|	tjdW S |j+r$|j+nd|j dJ< |j|j d< tt|j dH t|j d }
t|j dH t|
 }|j|j d< t|
d|j d< t|d|j d< d|j d < t|j d#}| 	r@| }tjj|jd	 }t|}|j d }tjj|d	 }d$}d%|j d&|j d'}t||| d)dK|j d+}	t|	tjdW S ddL|j"d+}	t|	tjdW S nddMd}	t|	tjdW S W nV t,k
	r } z6t-.dNt'|  dt'|d}	t|	tj/d W Y S d }~X Y nX d S )ONrH   r:   rY   r\   currencytransaction_idr9   Z001ZMAGpurchases_order_idrN   r]   Tbuy_dateprice	buy_priceoffer_max_amountoffer_discount_amountZoffer_id
offer_code Zcode__iexactr   /Coupon code has been expired, Please try again.r,   r
   magazineOfferd   offer_discount   offer_price
is_offered)r:   r\   r]   z User has been already taken buy.ry   zMagazine PurchasezHi z, you have been purchased z magazine successfully.)usernamer)   r   r   z,Magazine purchase record create successfullyr*   z*Magazine purchase record is not available.ra   	rent_date   )daysrent_expiry_date
rent_price)r:   r\   ra   z!User has been already taken rent.z, you have been rented z  magazine successfully.z(Magazine rent record create successfullyrb      subscription_typesubscriptionzsubcription id is not match months   subscription_price)r:   rb   subscription_user_statusz(User has been already taken subscriptionF)r   z3, you have been subscripted magazines successfully.z0Magazine subscription record create successfullyis_hard_copyhard_copy_pricezUser id is not matchdelivery_locationz(magazine hard record create successfullyz+magazine hard copy record is not available.zplease enter currect status.r   )0r+   r   rk   r   latestDoesNotExistr9   r   rQ   rh   datetimenowdateMagazineOfferinfor   
start_dateend_dater	   r   r0   floatdiscountroundCreatepurchageSerializerr~   r!   ShowPurchaseSerializerr|   
first_namer   r   r   BuyMailToUserThreadstarterrors	timedeltaintSubscriptionTyper   r4   r   r   rn   addressr1   r2   r3   r6   )r8   r"   r9   Zlastidcoder   r   current_dateZ	couponobjr<   offerobj
offerpricebuyobjr;   magidmgviewserializers_viewsrH   Zuserdetailsr   msgrecord_datarentobjZsubcriptio_idrr   subtypeqpZsubstimer`   r=   r#   r#   r$   r   &  s>   


0
 
"


"





 

 


0
 



z MagazinePurchaseInfoAPIView.post)N)N)r>   r?   r@   r   r/   r   r   r#   r#   r#   r$   r     s   
r   c                   @   s   e Zd ZeZdddZdS )MagazineOfferListAPIViewNc              
   C   s8  z|j dd }tj  }|rtjj|djddd}t	jj||d}t	jjd|d}t
t|t|}| j|dd	}	d
td |	jd}
t|
tjdW S t	jj|d}| j|dd	}	d
td |	jd}
t|
tjdW S  tk
r2 } z6tdt|  dtd d}
t|
tjd W Y S d }~X Y nX d S )NrH   )r`   magazineofferTr   )r   end_date__gteAll)Zfor_users__icontainsr  r'   r   r)   r*   r
   )r  z"MagazineOfferListAPIView:error => r   r,   )GETr   r   r   r   UserMapOfferr   rQ   r   r   r   r   r   r/   offer_messager+   r	   r   r0   r1   r2   r3   r4   r5   r6   )r8   r"   r9   rH   r   Z	userofferuserobjZuserobj1r   rs   r<   r=   r#   r#   r$   r   (  s&    zMagazineOfferListAPIView.get)N)r>   r?   r@   MutipleMAGOfferListSerializerr/   r   r#   r#   r#   r$   r  %  s   r  c                   @   s   e Zd ZeZdddZdS )MAGOfferInfoAPIViewNc                 C   s  z|j dd }|j dd }|j dd }z$tjt|dt|dB  }W n tjk
rl   d }Y nX |sddd}t|t	j
d	W S |d krdd
d}t|t	j
d	W S i }tj  }	tjt|dt|dB  }
|
j|	  kr|
jkr^n n^tjj||
jd}|r2ddd}t|t	j
d	W S |rtt|t|
j d }t|t| }t|d}tjt|dt|dB  }|j||t|d|j|j|j|j|j|j|j|j|jd}dtd |gd}t|t	j
d	W S tjt|dt|dB  }|jd d d |j|j|j|j|j|j|j|j|jd}dtd |gd}t|t	j
d	W S tjt|dt|dB jdd ddd}t|t	j
d	W S  tk
r } z6tdt |  dt!d d}t|t	j"d	 W Y S d }~X Y nX d S )Namount	coupon_idrH   )Z
id__iexactr   r   z,Please enter correct offer id or offer code.r,   r
   r   )r:   r   z!This coupon code is already used.r   r   )r9   Z
real_pricer   discount_pricer   r   max_discountr   r   offer_statusdescription
created_on
updated_onr   r)   r*   F)r  r   zMAGOfferInfoAPIView:error => )#r  r   r   r   rQ   r   rh   r   r	   r   r0   r   r   r   r   r   rk   r9   r   r   r   r   r  r  r  r  r  r
  rn   r1   r2   r3   r4   r5   r6   )r8   r"   r9   r  r  rH   r   r<   dicr   r  
percentageZofferprr   Zofferr=   r#   r#   r$   r   e  sR    $


 	 

 : 4$
zMAGOfferInfoAPIView.get)N)r>   r?   r@   MAGOfferListSerializerr/   r   r#   r#   r#   r$   r  b  s   r  c                   @   s   e Zd ZeZdddZdS )MagazineSubscriptionInfoAPIViewNc           
   
   C   s   z|j dd }|rVtjj|d }| j|dd}dtd |jd}t	|t
jdW S tj }t|dd}dtd |jd}t	|t
jdW S  tk
r }	 z6td	t|	  d
td d}t	|t
jd W Y S d }	~	X Y nX d S )NrH   r   Tr'   r   r)   r*   r
   z)MagazineSubscriptionInfoAPIView:error => r   r,   )r  r   Subscriptionr   rQ   r.   r/   subscribtion_messager+   r	   r   r0   SubscriptionSerializerr1   r2   r3   r4   r5   r6   )
r8   r"   r9   rH   	mysublistserializerdatar<   rr   rs   r=   r#   r#   r$   r     s    
z#MagazineSubscriptionInfoAPIView.get)N)r>   r?   r@   "MagazineSubscriptionInfoSerializerr/   r   r#   r#   r#   r$   r    s   r  c                   @   s   e Zd ZeZdddZdS )MagazineSubscriptionListAPIViewNc                 C   s  |j dd }|j dd }|rb|sbtjj|d }t|dd}dtd |jd}t	|t
jd	S |r|stjj|d
 }tjj|jd }	t|	dd}
g |
jd}dtd |d}t	|t
jd	S |r|rzHtjj|d
 }tjj|jdjddd}tjj|dd|d }W n  tk
r:   tj }Y nX t|dd}tjj|jd }	t|	dd|id}
|j|
jd}dtd |d}t	|t
jd	S ddd}t	|t
jd	S d S )NrH   	sort_namerN   Fr'   r   r)   r*   r
   )sortname)countryT)user_subscriptionsubscription_listr9   r   )r:   rb   r   subscription__inrM   r   zInvalid termsr,   )r  r   r|   r   rQ   rl   UserPurchaseListSerializerr  r+   r	   r   r0   Countryrh   r   r9   r.   CountryListUserSerializerr   rk   r1   noneListUserSerializer)r8   r"   r9   rH   r!  Zuserlistr;   r<   Z
countryonjrr   Zcountryserializerr   Zsubscriptionobj1Zmysublr  r#   r#   r$   r     s:    
z#MagazineSubscriptionListAPIView.get)N)r>   r?   r@   UserPurchCountrySerializerr/   r   r#   r#   r#   r$   r     s   r   c                   @   s   e Zd ZeZdddZdS )ShowMagazineOrderHistoryAPIViewNc           	   
   C   s  z| j jdd }|s0ddd}t|tjdW S tjj|d	 }|s`ddd}t|tjdW S t
jj|dd	 d
}t|dd}dtd |jd}t|tjdW S  tk
 r } z6tdt|  dtd d}t|tjd W Y S d }~X Y nX d S )NrH   r   please enter user id.r,   r
   rN   record is not available.Tr   -idr'   r   r)   r*   z)ShowMagazineOrderHistoryAPIView:error => )r"   rO   r   r	   r   r0   r|   r   rQ   rh   rk   r.   r   MGAOrderHistorySerializerZorder_history_messager+   r1   r2   r3   r4   r5   r6   )	r8   r"   r9   rH   r<   r  userdatars   r=   r#   r#   r$   r      s"    

z#ShowMagazineOrderHistoryAPIView.get)N)r>   r?   r@   r1  r/   r   r#   r#   r#   r$   r-    s   r-  c                   @   s   e Zd ZeZdddZdS )MagazineOrderDetailAPIViewNc              
   C   s`  z| j jdd }| j jdd }|sBddd}t|tjdW S |s`ddd}t|tjdW S tjj|d	 }|sdd	d}t|tjdW S t
jj|d	 }|sdd	d}t|tjdW S t
jj||d
 d}| j|dd}	dd|	jd}t|tjdW S  tk
rZ }
 z6tdt|
  dtd d}t|tjd W Y S d }
~
X Y nX d S )NrH   order_idr   r.  r,   r
   zplease enter order id.rN   r/  r   r0  Tr'   r   z0magazine order detail records found successfullyr*   z$MagazineOrderDetailAPIView:error => r)   )r"   rO   r   r	   r   r0   r|   r   rQ   rh   rk   r.   r   r/   r+   r1   r2   r3   r4   r5   r6   )r8   r"   r9   rH   r4  r<   r  r   r2  rs   r=   r#   r#   r$   r     s2    



zMagazineOrderDetailAPIView.get)N)r>   r?   r@   MagazineOrderDetailSerializerr/   r   r#   r#   r#   r$   r3    s   r3  c                   @   s$   e Zd ZeZdddZdddZdS )MagazineReviewInfoAPIViewNc              
   C   sr  z| j jdd }| j jdd }|sBddd}t|tjdW S |s`ddd}t|tjdW S tjj|d}|sdd	d}t|tjdW S t	jj|d}|sdd	d}t|tjdW S |r|rt
jj||d
 }t|dd}	dd|	jd}t|tjdW S ddd}t|tjdW S  tk
rl }
 z6tdt|
  dtd d}t|tjd W Y S d }
~
X Y nX d S )NrH   rY   r   zPlease enter magazine id.r,   r
   zPlease enter user id.rN   rg   rZ   Fr'   r   z$Magazine review record found successr*   z#Magazine review record is not found#MagazineReviewInfoAPIView:error => r)   )r"   rO   r   r	   r   r0   r|   r   rQ   r   magazineReviewInforh   MagazineReviewInfoSerializerr+   r1   r2   r3   r4   r5   r6   )r8   r"   r9   rH   rY   r<   r  r   r   rs   r=   r#   r#   r$   r     s8    




zMagazineReviewInfoAPIView.getc              
   C   s  zH|j }|dd |d< |dd |d< tjj|d |d d }|rtjj|d d }| j||j dd}| r|	 }t
|d	d
}dd|j d}	t|	tjdW S dtd d}	t|	tjdW S | j|d}| r*|	 }
tjj|
jd }t
|d	d
}dtd |j d}	t|	tjdW S dtd d}	t|	tjdW S W nV tk
r } z6tdt|  dt|d}	t|	tjd W Y S d }~X Y nX d S )NrH   r:   rY   r[   )r:   ru   r   T)r+   r   Fr'   r   z)magazine review data update successfully.r*   r
   r   r)   r,   ry   rN   r7  )r+   r   r8  r   rQ   rh   rl   r/   r~   r!   ReviewInfoSerializerr	   r   r0   Zreview_error_messager9   Zreview_enter_messager1   r2   r3   r4   r6   )r8   r"   r9   r+   r  r   r;   r   r   r<   r   r=   r#   r#   r$   r     s8    
zMagazineReviewInfoAPIView.post)N)N)r>   r?   r@   r9  r/   r   r   r#   r#   r#   r$   r6    s   
&r6  c                   @   s   e Zd ZeZdddZdS ) MagazineReviewInfoHistoryAPIViewNc           
   
   C   sT  z| j jdd }| j jdd }tjj|d}|sNddd}t|tjdW S |r|rt	jj||d
 }t|d	d
}dtd |jd}t|tjdW S |rt	jj|d
 }t|d	d
}dtd |jd}t|tjdW S dtd d}t|tjdW S  tk
rN }	 z6tdt|	  dtd d}t|tjd W Y S d }	~	X Y nX d S )NrH   rY   rN   r   !Please enter correct magazine id.r,   r
   rZ   Tr'   r   r)   r*   r[   z*MagazineReviewInfoHistoryAPIView:error => )r"   rO   r   r   r   rQ   r	   r   r0   r8  r.   #MagazineReviewInfoHistorySerializerallreview_error_messager+   r1   r2   r3   r4   r5   r6   
r8   r"   r9   rH   rY   r   r<   r   rs   r=   r#   r#   r$   r     s.    
z$MagazineReviewInfoHistoryAPIView.get)Nr>   r?   r@   r>  r/   r   r#   r#   r#   r$   r;    s   r;  c                   @   s   e Zd ZeZdd ZdS )MagazineReadStatusInfoAPIViewc              
   C   sx  z|j }|d |d< |d |d< tjj|d d}|sVdtd d}t|tjd	W S tjj|d |d d
	 }|d kr| j
|d}| r| }tjj|jd	 }t|}	dtd |	j d}t|tjd	W S d|jd}t|tjd	W S n(| 
|}dd|j d}t|tjd	W S W nV tk
rr }
 z6tdt|
  dt|
d}t|tjd	 W Y S d }
~
X Y nX d S )NrY   r_   rH   r`   rN   r   r)   r,   r
   r^   ry   r   r*   z1magazine read Record already create Successfully.z'MagazineReadStatusInfoAPIView:error => )r+   r   r   rQ   Zread_status_error_messager	   r   r0   rm   rh   r/   r~   r!   r9   ShowMGAReadStatusSerializerZread_status_messager   r1   r2   r3   r4   r6   )r8   r"   r+   r   r<   readobjr;   r   r   r   r=   r#   r#   r$   r   
  s4    
z"MagazineReadStatusInfoAPIView.postN)r>   r?   r@   MagazineReadStatusSerializerr/   r   r#   r#   r#   r$   rB    s   rB  c                   @   s   e Zd ZeZdddZdS )!ShowMagazineReadStatusInfoAPIViewNc           
   
   C   sZ   z| j jdd }| j jdd }tjj|d}|sPddd}t|tjdW S |r|rt	jj||d
 }| j|d	d
}dtd |jd}t|tjdW S |rt	jj|d
 }| j|d	d
}dtd |jd}t|tjdW S dtd d}t|tjdW S  tk
rT }	 z6tdt|	  dtd d}t|tjd W Y S d }	~	X Y nX d S )NrH   rY   rN   r   r<  r,   r
   rZ   Tr'   r   r)   r*   r=  z+ShowMagazineReadStatusInfoAPIView:error => )r"   rO   r   r   r   rQ   r	   r   r0   rm   r.   r/   r?  r+   r1   r2   r3   r4   r5   r6   r@  r#   r#   r$   r   .  s.    
z%ShowMagazineReadStatusInfoAPIView.get)NrA  r#   r#   r#   r$   rF  +  s   rF  c                 C   s   t | dddS )Nzweb/404.htmli  r
   r   )r"   	exceptionr#   r#   r$   	error_404P  s    rH  )Lcalendarr   pickler   Zwsgiref.validater   django.shortcutsr   django.httpr   rest_framework.viewsr   rest_framework.responser	   rest_frameworkr   Zrest_framework.parsersr   r   r   uritemplater   Zmagazine.fcmr   Zmagazineapp.modelsrs   logging	getLoggerr>   r2   django.corer   Zrest_framework.permissionsr   r   django.db.modelsr   Zdjango_filters.rest_frameworkZdjango_filtersZrest_framework.filtersr   r   r   Zmagazine_messager   r   stringrandombase.threadsr%   ListAPIViewr&   GenericAPIViewrB   rE   rG   rX   rt   r   r   r   r   r   r   r   r  r  r  r   r-  r3  r6  r;  rB  rF  rH  r#   r#   r#   r$   <module>   st   
<P748u a  =G=|O#$"