
    ,g                        d dl mZmZ d dlmZ d dlZd dlmZ d dlm	Z	 d dl
mZm
Z
  e       Z ed      Zed   Zed	   Zed
   Z ej"                         Zej%                  d ee      id dd      Zej%                  d ee      id dd      Zed   Z ee      Z ej0                  ej2                         d dlmZmZ d dl mZ ej=                  d       ed      fdefd       Zej=                  d       ed      fdefd       Z ejC                  d      d        Z"d dl#m$Z$ ej-                  d      de$defd       Z%y)     )FastAPIHTTPException)MongoClientN)
KiteTicker)	Portfolio)datedatetimez<mongodb://jenya:DJenya$Mongo%40St0ckDB@172.105.59.175:27017/trade_iqzerodha_instrumentszerodha_credentialsr      )_idenctoken)r   	websocketr   )
socket_url)level)TradePortfolioData)Bodyz/portfolio/buy.tradec                    K   t        | j                        }|j                  | j                  | j                         t
        j                  d|j                  id|j                  id       d|j                  dS w)Nr   $setTupsertBoughtstatusdata)r   symbol	buy_stockquantityprice
collection
update_one__dict__r   	portfolios     /var/www/html/trade_iq/main.pyr    r    $   sq     %,,'I4		  !	##$  
 	(:(:;;   A;A=z/portfolio/sellc                    K   t        | j                        }|j                  | j                  | j                         t
        j                  d|j                  id|j                  id       d|j                  dS w)Nr   r   Tr   Soldr   )r   r   
sell_stockr!   r"   r#   r$   r%   r&   s     r(   r,   r,   0   sq     %,,'I5		  !	##$  
 i&8&899r)   z/portfolio/valuec                  H   K   t        d      } | j                         }d|iS w)N total_portfolio_value)r   portfolio_value)r'   values     r(   r0   r0   =   s(     "I%%'E#U++s    ")	WebSocketz/ws/prices/{symbol}r   c                     K    j                          d {    t        j                  di      d   } fd}|t        _        t        j                          	  j                          d {    7 ]7 w)Ntradingsymbolinstrument_tokenc                 >    |d   d   }j                  |d       y )N
last_price)r   r"   )	send_json)wstickscurrent_pricer   r   s      r(   on_ticksz$websocket_endpoint.<locals>.on_ticksK   s$    b	,/vFG    )acceptr#   find_onekwsr=   connectreceive_text)r   r   r5   r=   s   ``  r(   websocket_endpointrD   F   st     



!**OV+DEFXYH CLKKM $$&&&   	's"   A:A6AA:0A81A:8A:)&fastapir   r   pymongor   loggingzerodha.zerodha_tickerr   portfolioObjr   r	   r   appclientdatabaser#   creds_collectiontodayr@   strenctoken_objwebsocket_objr   rA   basicConfigDEBUGmodelsr   r   r   postr    r,   getr0   fastapi.websocketsr2   rD    r>   r(   <module>rY      sr   *   - " #i 
S	T*+,
12 

  ((&#e*)=qVW?XY ))63u:*>XY@Z[+&	 I&   '-- ( ( 
#'9 	<5 	< 	< 
$(I 	:E 	: 	: 	, , )$%'	 '3 ' &'r>   