
    h                        d dl 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mZ d dlZd dl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mZ d dl m!Z!  e       Z"dZ#ejH                  jK                  e#      s ejL                  e#       e"jO                  de       ed       ed       ed       ed       ed       eejP                         ed       ed       ee      f	de)de)de)dee)   dee)   dede*dee   de+fd       Z,e"j[                  dee          ee      fde+fd       Z.e"j[                  de       ee      fde*de+fd       Z/e"ja                  de       ed       ed       ed       ed       ed       eejP                         ed       ed       ee      f	de*de)de)de)dee)   dee)   dede*dee   de+fd        Z1e"je                  de       ee      fde*de+fd!       Z3y)"    )	APIRouterDependsFormHTTPException
UploadFileFile)Pagepaginate)Session)ListOptionalN)datetime)send_notification)PublicationPublicationCreatePublicationUpdate)r   )PublicationState)check_token_validity)get_db)send_push_notification_by_topicz./files )response_model.titlepreviewcountrysourcelinkstatecategory_idfiledependenciesc	           
         |\  }	}
d }|rct         j                  j                  t        |j                        }t        |d      5 }t        j                  |j                  |       d d d        t        | |||||||      }|j                  t        j                  k(  r)t        j                         |_        t!        dd|  |       |	j#                  |       |	j%                          |	j'                  |       |S # 1 sw Y   xY w)Nwbr   r   r   r   r   r   r   	file_pathpublicationszNouvelle publication: )ospathjoinUPLOAD_DIRECTORYfilenameopenshutilcopyfileobjr    PublicationModelr   r   	PUBLISHEDr   utcnowpublished_atr   addcommitrefresh)r   r   r   r   r   r   r   r    r!   dbuserr%   bufferdb_publications                 O/Users/theessential/Documents/Github/Lekema-Backend/app/routers/publications.pycreate_publicationr;      s     HBIGGLL!14==A	)T" 	2ftyy&1	2 &96N /999&.oo&7# 	(:PQVPW8XZab FF>IIKJJ~-	2 	2s   !C::Dc                 h    | \  }}|j                  t              j                         }t        |      S )N)queryr/   allr
   )r!   r6   r7   r&   s       r:   read_publicationsr?   ?   s.    HB88,-113LL!!    z/{publication_id}publication_idc                     |\  }}|j                  t              j                  t        j                  | k(        j	                         }|t        dd      |S N  Publication not foundstatus_codedetail)r=   r/   filteridfirstr   rA   r!   r6   r7   r9   s        r:   read_publicationrM   F   sT    HBXX./667G7J7Jn7\]cceN4KLLr@   c
           	         |	\  }
}|
j                  t              j                  t        j                  | k(        j	                         }|t        dd      d }|rct        j                  j                  t        |j                        }t        |d      5 }t        j                  |j                  |       d d d        ||||||||r|n|j                  d}d|v r|d   t         j"                  k(  r>|j$                  t         j&                  k(  r!t)        j*                         |_        d |_        nL|d   t         j&                  k(  r6|j$                  t         j"                  k(  rt)        j*                         |_        |j1                         D ]  \  }}t3        |||        |
j5                          |
j7                  |       |S # 1 sw Y   xY w)NrD   rE   rF   r#   r$   r   )r=   r/   rI   rJ   rK   r   r'   r(   r)   r*   r+   r,   r-   r.   r    r%   r   r0   r   UNPUBLISHEDr   r1   r2   unpublished_atitemssetattrr4   r5   )rA   r   r   r   r   r   r   r   r    r!   r6   r7   r9   r%   r8   update_datakeyvalues                     r:   update_publicationrV   O   s    HBXX./667G7J7Jn7\]cceN4KLLIGGLL!14==A	)T" 	2ftyy&1	2 ""&YN,D,D	K +w#3#=#==.BVBVZjZvZvBv*2//*;N',0N)!%5%A%AAnFZFZ^n^x^xFx,4OO,=N)!'') ,
UU+, IIKJJ~5	2 	2s   !GGc                     |\  }}|j                  t              j                  t        j                  | k(        j	                         }|t        dd      |j                  |       |j                          |S rC   )r=   r/   rI   rJ   rK   r   deleter4   rL   s        r:   delete_publicationrY      si    HBXX./667G7J7Jn7\]cceN4KLLIInIIKr@   )4fastapir   r   r   r   r   r   fastapi_paginationr	   r
   sqlalchemy.ormr   typingr   r   r-   r'   r   app.routers.notificationsr   app.schemas.publicationr   r   r   app.models.publicationr/   app.enums.publication_stater   app.utils.authentificationr   app.utils.databaser   app.utils.helpersr   routerr*   r(   existsmakedirspostrO   strinttupler;   getr?   rM   putrV   rX   rY    r@   r:   <module>ro      s   M M - " !  	  7 U U B 8 ; % =	 	ww~~&'BKK !R,c99 Jt*"#3#?#?@Cy!%d!"67$$$ $ SM	$
 3-$ $ $ :
$ $ -$N BtK01,34H,I "E " 2" <@GH\@] S   = < c99 Jt*"#3#?#?@Cy!%d!"67--- - 	-
 SM- 3-- - - :
- - =-` ";?BIJ^B_ s %  @r@   