o
    Xhd                     @   s   d dl mZ d dl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 d dlmZ d dlZejZejZejZejZejZejZejZd	d
 Zdd Zdd Zdd Zdd Zdd Z dS )    )JSONDecodeErrorN)datetime)Config)relativedelta)build)MediaIoBaseUpload)ServiceAccountCredentialsc               
   C      zt rtt t} tdd| d}|W S td W d S  ty5 } ztdt	| W Y d }~d S d }~w t
yO } ztdt	| W Y d }~d S d }~ww )NZanalyticsreportingv4credentials0No key path set for Google JSON credential file.z6An error occurred while instantiating the GA reporter.)KEY_PATHr   from_json_keyfile_nameSCOPEr   logginginfor   errorstr	TypeError)r   	analyticse r   =/home/cmiss/Jenkins/workspace/SPARC-API-DEV/app/metrics/ga.pyinit_ga_reporting   &   
r   c                 C   s   t  tdd }|d}z;|  jdt|t  ddgddigdgid	 }t|d
 rG|d
 d d d d d d }t	|W S W d S    Y d S )N   )yearsz%Y-%m-%dZreportRequests)	startDateendDate
expressionzga:sessions)ZviewIdZ
dateRangesmetrics)bodyreportsr   dataZtotalsvalues)
r   nowr   strftimer#   ZbatchGetVIEW_IDexecutelenint)r   
start_dateformatted_start_datereporttotalr   r   r   get_ga_1year_sessions*   s*   
 
r0   c               
   C   r	   )Nsheetsr
   r   r   z9An error occurred while instantiating the GSPREAD client.)r   r   r   SPREADS_SCOPEr   r   r   r   r   r   r   )r   r1   r   r   r   r   init_gspread_clientD   r   r3   c                 C   s.   | r|    jtdddd|gid  dS )NEventsZUSER_ENTEREDZINSERT_ROWSr%   )spreadsheetIdrangeZvalueInputOptionZinsertDataOptionr"   T)spreadsheetsr%   appendEVENTS_SPREADS_IDr)   )clientrowr   r   r   append_contactX   s   r<   c               
   C   r	   )Ndrivev3r   r   z7An error occurred while instantiating the DRIVE client.)r   r   r   DRIVE_SCOPEr   r   r   r   r   r   r   )r   r=   r   r   r   r   init_drive_cliente   r   r@   c                 C   sd   |j dkrdS t| }|jpd}|p|j tgd}t||dd}|  j||ddd	 }|S )	N Fzapplication/octet-stream)nameparentsT)mimetypeZ	resumablewebViewLink)r"   Z
media_bodyfieldssupportsAllDrives)
filenameioBytesIOreadrD   EVENTS_ATTACHMENTS_FOLDERr   filescreater)   )r:   filerH   file_streamZ	mime_typeZfile_metadataZmediarespr   r   r   upload_filey   s"   

rR   )!jsonr   r   r   
app.configr   dateutil.relativedeltar   googleapiclient.discoveryr   Zgoogleapiclient.httpr   oauth2client.service_accountr   rI   GOOGLE_API_GA_SCOPEr   GOOGLE_API_SPREADS_SCOPEr2   GOOGLE_API_DRIVE_SCOPEr?   GOOGLE_API_GA_KEY_PATHr   GOOGLE_API_GA_VIEW_IDr(   r9   rL   r   r0   r3   r<   r@   rR   r   r   r   r   <module>   s,    