
    W8i                         d dl mZ d dlmZ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mZ d dlmZ d d	lmZ  G d
 dej(                        Z G d dej,                        Z G d dej0                        Zy)    )Any)genericspermissions)Response)SearchFilterOrderingFilter)DjangoFilterBackend)NotificationFilter)NotificationService)NotificationSerializer)UnreadReadPaginationc                        e Zd ZeZej                  gZeZ	e
eegZeZddgZddgZdgZdef fdZd Zed	        Z xZS )
NotificationListViewtitlerecipient__username
created_atis_readz-created_atkwargsc                 >    t         |           d | _        d | _        y N)super__init___filtered_qs_unfiltered_qs)selfr   	__class__s     K/var/www/html/dp2/backend_v2.1/server/apps/calls/views/notification_view.pyr   zNotificationListView.__init__   s     "    c                 f    t        j                  | j                  j                        }|| _        |S r   )r   list_notificationsrequestuserr   )r   querysets     r   get_querysetz!NotificationListView.get_queryset   s)    &99$,,:K:KL&r   c                     | j                   S r   )r   r   s    r   unfiltered_qsz"NotificationListView.unfiltered_qs#   s    """r   )__name__
__module____qualname__r   serializer_classr   IsAuthenticatedpermission_classesr   pagination_classr	   r   r   filter_backendsr
   filterset_classsearch_fieldsordering_fieldsorderingr   r   r$   propertyr'   __classcell__)r   s   @r   r   r      sp    -%556+*L.IO(O34M#Y/OH# #
 # #r   r   c                   0    e Zd ZeZej                  gZd Zy)NotificationDetailViewc                 T    t        j                  | j                  j                        S r   )r   r    r!   r"   r&   s    r   r$   z#NotificationDetailView.get_queryset+   s    "55dll6G6GHHr   N)	r(   r)   r*   r   r+   r   r,   r-   r$    r   r   r7   r7   '   s    -%556Ir   r7   c                   0    e Zd ZeZej                  gZd Zy)MarkNotificationReadViewc                     |j                  d      }t        j                  |j                  |      }|st	        ddid      S t	        t        |      j                        S )NpkdetailzNotification not foundi  )status)getr   mark_as_readr"   r   r   data)r   r!   argsr   notif_idnotifs         r   updatezMarkNotificationReadView.update2   s[    ::d##00xH34 
 .u5::;;r   N)	r(   r)   r*   r   r+   r   r,   r-   rF   r9   r   r   r;   r;   .   s    -%556
<r   r;   N)typingr   rest_frameworkr   r   rest_framework.responser   rest_framework.filtersr   r   django_filters.rest_frameworkr	   apps.calls.filtersr
   apps.calls.servicesr   apps.calls.serializersr   apps.calls.paginationr   ListAPIViewr   RetrieveAPIViewr7   UpdateAPIViewr;   r9   r   r   <module>rS      sX     0 , ? = 1 3 9 6#8// #4IX55 I<x55 <r   