o [&h@sddlmZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z dd lmZddlZejZejZejZejZejZejZejZd d Zd d ZddZddZ ddZ!ddZ"dS))JSONDecodeErrorN)datetime)Config) relativedelta)build)MediaIoBaseUpload)ServiceAccountCredentials) HttpErrorc Cztrttt}tdd|d}|WStdWdSty5}ztdt |WYd}~dSd}~wt yO}ztdt |WYd}~dSd}~ww)NZanalyticsreportingv4 credentials0No key path set for Google JSON credential file.z6An error occurred while instantiating the GA reporter.) KEY_PATHrfrom_json_keyfile_nameSCOPErlogginginforerrorstr TypeError)r analyticser=/home/cmiss/Jenkins/workspace/SPARC-API-DEV/app/metrics/ga.pyinit_ga_reporting& rcCsttdd}|d}z;|jdt|tddgddigdgid }t|d rG|d d d d d dd }t |WSWdSYdS)N)yearsz%Y-%m-%dZreportRequests) startDateendDate expressionz ga:sessions)ZviewIdZ dateRangesmetrics)bodyreportsrdataZtotalsvalues) rnowrstrftimer$ZbatchGetVIEW_IDexecutelenint)r start_dateformatted_start_datereporttotalrrrget_ga_1year_sessions+s*     r1c Cr )Nsheetsr r rz9An error occurred while instantiating the GSPREAD client.) rrr SPREADS_SCOPErrrrrrr)r r2rrrrinit_gspread_clientErr4c Cs|std|rt|ttfstd|z&|jtddddt|gid}| di}| d d }|d kWSt yV}zt d |WYd}~d Sd}~wt yo}zt d |WYd}~d Sd}~ww)Nz'Google Sheets client is not initializedz,Row must be a non-empty list or tuple, got: EventsZ USER_ENTEREDZ INSERT_ROWSr&) spreadsheetIdrangeZvalueInputOptionZinsertDataOptionr#updatesZ updatedRowsrzGoogle Sheets API error: FzUnexpected error: ) ValueError isinstancelisttuple spreadsheetsr&appendEVENTS_SPREADS_IDr*getr print Exception)clientrowresultr8Z updated_rowsrrrrappend_contactYs4     rFc Cr )Ndrivev3r rz7An error occurred while instantiating the DRIVE client.) rrr DRIVE_SCOPErrrrrrr)r rGrrrrinit_drive_clienttrrJcCsd|jdkrdSt|}|jpd}|p|jtgd}t||dd}|j||ddd }|S) NFzapplication/octet-stream)nameparentsT)mimetypeZ resumable webViewLink)r#Z media_bodyfieldssupportsAllDrives) filenameioBytesIOreadrNEVENTS_ATTACHMENTS_FOLDERrfilescreater*)rCfilerR file_streamZ mime_typeZ file_metadataZmediaresprrr upload_files"  r\)#jsonrrr app.configrdateutil.relativedeltargoogleapiclient.discoveryrZgoogleapiclient.httproauth2client.service_accountrgoogleapiclient.errorsr rSGOOGLE_API_GA_SCOPErGOOGLE_API_SPREADS_SCOPEr3GOOGLE_API_DRIVE_SCOPErIGOOGLE_API_GA_KEY_PATHrGOOGLE_API_GA_VIEW_IDr)r?rVrr1r4rFrJr\rrrrs.