o
    ̿Si	                     @   sF   d dl Z d dlZd dlmZ d dlZG dd dZdd Zdd ZdS )	    N)MongoClientc                   @   s"   e Zd ZdefddZdd ZdS )MongoDBconnection_stringc                 C   s   t || _| jj| _d S N)r   clientmy_databasedb)selfr    r
   -/var/www/html/Trade-python/app/db/database.py__init__   s   
zMongoDB.__init__c                 C   s   | j   d S r   )r   close)r	   r
   r
   r   r      s   zMongoDB.closeN)__name__
__module____qualname__strr   r   r
   r
   r
   r   r      s    r   c                  c   s    t dd} t d}t d}t d}t d}|s>|r6|r6tj|}d| d| d	|  d
| }nd|  d
| }t|}|| }z|V  W |j  d S |j  w )N
MONGO_HOST	localhost
MONGO_USER
MONGO_PASSMONGO_DB	MONGO_URI
mongodb://:@:27017/)	osgetenvurllibparse
quote_pluspymongor   r   r   
mongo_host
mongo_user
mongo_passmongo_db_name	mongo_urir   r   r
   r
   r   get_mongo_db   s$   





r(   c                  C   s   t dd} t d}t d}t d}t d}|s td|sC|r;|r;tj|}d| d	| d
|  d| }nd|  d| }t|}|| }||fS )zCreate a MongoClient + DB handle for non-request contexts.

    Use this for background threads / long-running jobs.
    Caller must close the returned client.
    r   r   r   r   r   r   zMONGO_DB is not configuredr   r   r   r   )r   r   
ValueErrorr   r   r    r!   r   r"   r
   r
   r   create_mongo_client_and_db,   s   




r*   )r   r!   r   urllib.parser   r   r(   r*   r
   r
   r
   r   <module>   s    
