U
    Jh                     @   s   d dl Z d dlZd dlmZmZmZ d dlmZ d dlZd dlZd dl	Z	dZ
dZdZdZdZd	ZdddZdd Zdd ZdddZdddddifddZdS )    N)credentialsget_appinitialize_app)datetime servicekey.jsonzfarmbase-b2f7ezfarmbase-b2f7e.appspot.comz5https://us-central1-farmbase-b2f7e.cloudfunctions.netz4https://loan-server-690925759726.us-central1.run.app   c           
   
   C   s   z| dkrd}d}n4| dkr&d}d}n"| dkr8d}d	}n| d
krHd}d}zt |}W n&   td}t|d|i|}Y nX |W S  tk
r } z*t \}}}|j}	td||	 W Y dS d}~X Y nX dS )zReturns the initiated app


    :param dbNo: 0 - default;
        1 - main of farmonaut;
        2 - user DB
        3 - 4th DB 741df
    :return: firebase app
    r   z&https://farmbase-b2f7e.firebaseio.com/Zfirst_dbr   z,https://farmbase-b2f7e-31c0c.firebaseio.com/z	[DEFAULT]   z,https://farmbase-b2f7e-60c5a.firebaseio.com/Zuser_db   z,https://farmbase-b2f7e-741df.firebaseio.com/Zforth_dbr   databaseURLzfirebase init errN)	r   r   Certificater   	Exceptionsysexc_info	tb_linenoprint)
ZdbNoZdbUrlapp_nameappcrede___exc_tbZlineNo r   %/home/ankuromar296_gmail_com/utils.pyinit_firebase   s0    

r   c              	   C   sx   t j| }|r4t j|s4t | td|  t j| sft| d}W 5 Q R X td|   ntd|   dS )z
    Create a file and its parent directories if they don't exist.

    :param file_path: The full path of the file to create.
    zDirectories created: wzFile created: zFile already exists: N)ospathdirnameexistsmakedirsr   open)	file_path	directoryfiler   r   r   create_file_with_path<   s    

r&   c              	   C   sR   dddg}|D ]0}zt | |W   S  tk
r<   Y qY qX qtd|  d S )Nz%d-%m-%Yz%d-%b-%Yz%d-%B-%YzDate format not recognized: )r   strptime
ValueError)date_stringZdate_formatsdate_formatr   r   r   parse_order_dateS   s    r+   +91c              
   C   s   |  dd}|dsd| }z t|d}t|r<|W S W n8 tjk
rv } ztd| d|  W 5 d}~X Y nX | dst||  S dS )z
    Checks if a phone number has a valid country code.
    Returns with country code, using default code 91 if no is valid.

    :param mPhone:(string) mPhone - The phone number to check.
    :return: (string) number with code (and +) or None
     r   +NzError parsing number: z | )replace
startswithphonenumbersparseZis_valid_numberZNumberParseExceptionr   get_phone_with_code)ZmphoneZdefault_codeZphonenumbererrorr   r   r   r3   f   s    


&
r3   postzcontent-typezapplication/jsonc                 C   s&   t j|| ||dkr|nt||dS )z7
    Args:
        params: dict
        body: dict
    N)methodurlparamsdataheaders)requestsrequestjsondumps)r8   r9   bodyr7   r;   r   r   r   runHttpRequest   s    rA   )r   )r,   )r   r   firebase_adminr   r   r   r   r1   r<   r>   Z
GEMINI_KEYSERVICE_KEY_PATHPROJECT_NAMEZBUCKET_NAMEZCLOUD_FUNCTION_BASE_URLZLOAN_SERVER_BASE_URLr   r&   r+   r3   rA   r   r   r   r   <module>   s*   
%
"