
    shd                        d dl mZmZmZmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlZ eddg	      Z ej                  d
      Zej#                  d       ee
      fdedefd       Zej#                  d       edd       ee
      fdededefd       Zej-                  d       ee
      fdedefd       Zej-                  d      d ee
      fdededz  defd       Zy)    )	APIRouterDependsHTTPExceptionResponseQuery)Session)datetime)get_db)DeliveryNz/tracktracking)prefixtagsz8R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7z/open/{delivery_id}delivery_iddbc                 *  K   |j                  t              j                  t        j                  | k(        j	                         }|r5|j
                  s)t        j                         |_        |j                          t        t        ddddd      S w)zQ
    Track email/notification open via pixel
    Returns 1x1 transparent GIF
    z	image/gifz#no-cache, no-store, must-revalidatezno-cache0)zCache-ControlPragmaExpires)content
media_typeheaders)queryr   filteridfirst	opened_atr	   utcnowcommitr   TRACKING_PIXELr   r   deliverys      */var/www/notifications/app/api/tracking.py
track_openr#      sy      xx!(()CDJJLH**%__.
		 B 
 s   BBz/click/{delivery_id}.zRedirect URL)descriptionurlc                 H  K   |j                  t              j                  t        j                  | k(        j	                         }|r|j
                  st        j                         |_        |j                  st        j                         |_        |j                  si |_	        d|j                  vrg |j                  d<   |j                  d   j                  |t        j                         j                         d       |j                          t        dd|i      S w)z5
    Track link click and redirect to target URL
    clicksr%   	timestampi.  Location)status_coder   )r   r   r   r   r   
clicked_atr	   r   r   response_metaappend	isoformatr   r   r   r%   r   r!   s       r"   track_clickr1   ,   s      xx!(()CDJJLH"""*//"3H !!!)!2H %%%'H"8111/1H""8,x(//!*4461
 	
 			 S! s   D D"z/webhook/openc                 "  K   |j                  t              j                  t        j                  | k(        j	                         }|st        dd      |j                  s)t        j                         |_        |j                          d| dS w)zG
    Webhook endpoint for tracking opens (e.g., from Telegram, VK)
      Delivery not foundr+   detailsuccessstatusr   )
r   r   r   r   r   r   r   r	   r   r   r    s      r"   webhook_track_openr:   U   sp      xx!(()CDJJLH4HII%__.
		<<s   BBz/webhook/clickc                 R  K   |j                  t              j                  t        j                  | k(        j	                         }|st        dd      |j                  st        j                         |_        |j                  st        j                         |_	        |rq|j                  si |_
        d|j                  vrg |j                  d<   |j                  d   j                  |t        j                         j                         d       |j                          d| dS w)zH
    Webhook endpoint for tracking clicks (e.g., from Telegram, VK)
    r3   r4   r5   r'   r(   r7   r8   )r   r   r   r   r   r   r,   r	   r   r   r-   r.   r/   r   r0   s       r"   webhook_track_clickr<   i   s      xx!(()CDJJLH4HII &oo/ %__. %%%'H"8111/1H""8,x(//!*4461
 	
 IIK<<s   D%D')fastapir   r   r   r   r   sqlalchemy.ormr   r	   app.db.sessionr
   app.db.modelsr   base64router	b64decoder   getintr#   strr1   postr:   r<        r"   <module>rJ      s@   F F "  ! " 	(*	6 "!!>
 !" &/ #4 "# Sn5&/%%	% 	% $%P _ &/=== =&  &/$=$=	t$= 	$= $=rI   