
    xh                     n   S SK r S SKJr  S SKJrJr  S SKJrJr  S SK	J
r
  S SKJr  S SKJr  SS	KJrJr  SS
KJrJrJr  SSKJr     S'S\S\\   S\\   S\\   4S jjrS\ R6                  S\\   4S jr\R:                  " S\\   S9\
\" / SQ5      S\S\S\4S j5       5       5       r\R:                  " S\SS9\" / SQ5      S\S\4S j5       5       r \R:                  " S\SS9\" / SQ5      S\S\S\ R6                  4S j5       5       r!\R:                  " S \\   SS9\
\" / SQ5      S\S\S\S\4S! j5       5       5       r"\R:                  " S"\SS9\" / SQ5      S\S\S\S\ R6                  4S# j5       5       r#\R:                  " S$\SSS%9\" / SQ5      S\S\S\S\ R6                  4S& j5       5       r$g)(    N)Optional)OuterRefSubquery)Http404HttpResponse)paginate)AuthHttpRequest)has_permission   )
IssueEvent
UserReport)IssueEventDetailSchemaIssueEventJsonSchemaIssueEventSchema   )routerrequestissue_idorganization_slugproject_slugc                    U R                   R                  n[        R                  R	                  US9nU(       a  UR	                  US9nU(       a  UR	                  US9nU(       a  UR	                  US9nUR                  S5      $ )N)#issue__project__organization__usersr   )"issue__project__organization__slug)issue__project__slugissue)authuser_idr   objectsfilterselect_related)r   r   r   r   r   qss         %/code/apps/issue_events/api/events.pyget_querysetr$      sw     ll""G				"	"w	"	OBYYY)YY:KYLYYLY9W%%    event_idreturnc                 t   #    [         R                  R                  U S9R                  5       I S h  vN $  N7f)Nr&   )r   r   r    afirstr)   s    r#   get_user_reportr+   !   s.     ##**H*=DDFFFFs   /868z/issues/{int:issue_id}/events/)response)z
event:readzevent:writezevent:adminr,   c                 :   #    [        XS9R                  S5      $ 7f)Nr   	-receivedr$   order_by)r   r,   r   s      r#   list_issue_eventr1   %   s      3<<[IIs   z%/issues/{int:issue_id}/events/latest/T)r,   by_aliasc           	        #    [        X5      R                  S5      nUR                  [        UR	                  [        S5      S9R                  S5      R                  S5      S S 5      S9nUR                  5       I S h  vN nU(       d
  [        5       eS Ul	        [        UR                  5      I S h  vN Ul        U$  N@ N7f)Nr.   receivedreceived__ltidr   )previous)r$   r0   annotater   r    r   valuesr*   r   nextr+   r7   user_report)r   r   r"   events       r#   get_latest_issue_eventr>   .   s      
g	(	1	1+	>B	II8J#7I8Xk"VD\"1
 
 
B ))+EiEJ-ehh77EL  8s$   A=C?C  4C4C5CCz)/issues/{int:issue_id}/events/{event_id}/c           
        #    [        X5      nUR                  [        UR                  [	        S5      S9R                  S5      R                  S5      S S 5      [        UR                  [	        S5      S9R                  S5      R                  S5      S S 5      S9nUR                  US9R                  5       I S h  vN nU(       d
  [        5       e[        UR                  5      I S h  vN Ul        U$  N9 N7f)	Nr4   r5   r.   r7   r   received__gtr8   r;   r7   r$   r9   r   r    r   r0   r:   r*   r   r+   r7   r<   )r   r   r&   r"   r=   s        r#   get_issue_eventrE   E   s      
g	(B	II8J#7I8Xk"VD\"1

 II8J#7I8Xj!VD\"1
 
 
B ))x)(//11Ei-ehh77EL	 2 8s$   B<C<>C8?-C<,C:-C<:C<z>/projects/{slug:organization_slug}/{slug:project_slug}/events/c                 <   #    [        XUS9R                  S5      $ 7f)Nr   r   r.   r/   )r   r,   r   r   s       r#   list_project_issue_eventrH   `   s#      <h{s   zI/projects/{slug:organization_slug}/{slug:project_slug}/events/{event_id}/c           
        #    [        XUS9nUR                  [        UR                  [	        S5      S9R                  S5      R                  S5      S S 5      [        UR                  [	        S5      S9R                  S5      R                  S5      S S 5      S9nUR                  US	9R                  5       I S h  vN nU(       d
  [        5       e[        UR                  5      I S h  vN Ul        U$  N9 N7f)
NrG   r4   r5   r.   r7   r   r@   rB   rC   rD   )r   r   r   r&   r"   r=   s         r#   get_project_issue_eventrJ   r   s      
<
B 
II8J#7I8Xk"VD\"1

 II8J#7I8Xj!VD\"1
 
 
B ))x)(//11Ei-ehh77EL	 2 8s$   B;C;=C7>-C;+C9,C;9C;zU/organizations/{slug:organization_slug}/issues/{int:issue_id}/events/{event_id}/json/)r,   r2   exclude_nonec                    #    [        XUS9nUR                  US9R                  5       I S h  vN nU(       d
  [        5       $ U$  N7f)N)r   r   rC   )r$   r    agetr   )r   r   r   r&   r"   objs         r#   get_event_jsonrO      sD      
gX	VB		X	&++-
-CyJ .s   +AAA)NNN)%uuidtypingr   django.db.modelsr   r   django.httpr   r   ninja.paginationr   glitchtip.api.authenticationr	   glitchtip.api.permissionsr
   modelsr   r   schemar   r   r    r   intstrr$   UUIDr+   getlistr1   r>   rE   rH   rJ   rO    r%   r#   <module>r`      s     / - % 8 4 + S S 
 #'+"&	&&sm&  }& 3-	&"GDII G(:2F G ,t<L7MN	<=JJ(4J@CJ > 
 OJ +#
 <=/ S  >" /#
 <=? c TYY  >* D"#
 
<=  	 > 
 O#
 <=  ii	 >8 [!	 <=14@COSyy >r%   