5
5
6
6
import altair as alt
7
7
import numpy as np
8
+ import os
9
+ import json
8
10
import pandas as pd
9
11
import penn_chime .spreadsheet as sp
10
12
from .constants import (
@@ -375,6 +377,52 @@ def display_sidebar(st, d: Parameters) -> Parameters:
375
377
population = population ,
376
378
)
377
379
380
+ #Read the environment variables and cteate json key object to use with ServiceAccountCredentials
381
+ def readGoogleApiSecrets ():
382
+ client_secret = {}
383
+ os .getenv
384
+ type = os .getenv ('GAPI_CRED_TYPE' ).strip ()
385
+ print (type )
386
+ client_secret ['type' ] = type ,
387
+ client_secret ['project_id' ] = os .getenv ('GAPI_CRED_PROJECT_ID' ),
388
+ client_secret ['private_key_id' ] = os .getenv ('GAPI_CRED_PRIVATE_KEY_ID' ),
389
+ client_secret ['private_key' ] = os .getenv ('GAPI_CRED_PRIVATE_KEY' ),
390
+ client_secret ['client_email' ] = os .getenv ('GAPI_CRED_CLIENT_EMAIL' ),
391
+ client_secret ['client_id' ] = os .getenv ('GAPI_CRED_CLIENT_ID' ),
392
+ client_secret ['auth_uri' ] = os .getenv ('GAPI_CRED_AUTH_URI' ),
393
+ client_secret ['token_uri' ] = os .getenv ('GAPI_CRED_TOKEN_URI' ),
394
+ client_secret ['auth_provider_x509_cert_url' ] = os .getenv ('GAPI_CRED_AUTH_PROVIDER_X509_CERT_URL' ),
395
+ client_secret ['client_x509_cert_url' ] = os .getenv ('GAPI_CRED_CLIENT_X509_CERT_URI' ),
396
+ json_data = json .dumps (client_secret )
397
+ print (json_data )
398
+ return json_data
399
+
400
+ def readGoogleApiSecretsDict ():
401
+ type = os .getenv ('GAPI_CRED_TYPE' )
402
+ project_id = os .getenv ('GAPI_CRED_PROJECT_ID' )
403
+ private_key_id = os .getenv ('GAPI_CRED_PRIVATE_KEY_ID' )
404
+ private_key = os .getenv ('GAPI_CRED_PRIVATE_KEY' )
405
+ client_email = os .getenv ('GAPI_CRED_CLIENT_EMAIL' )
406
+ client_id = os .getenv ('GAPI_CRED_CLIENT_ID' )
407
+ auth_uri = os .getenv ('GAPI_CRED_AUTH_URI' )
408
+ token_uri = os .getenv ('GAPI_CRED_TOKEN_URI' )
409
+ auth_provider_x509_cert_url = os .getenv ('GAPI_CRED_AUTH_PROVIDER_X509_CERT_URL' )
410
+ client_x509_cert_url = os .getenv ('GAPI_CRED_CLIENT_X509_CERT_URI' )
411
+
412
+ secret = {
413
+ 'type' : type ,
414
+ 'project_id' : project_id ,
415
+ 'private_key_id' : private_key_id ,
416
+ 'private_key' :private_key ,
417
+ 'client_email' : client_email ,
418
+ 'client_id' : client_id ,
419
+ 'auth_uri' : auth_uri ,
420
+ 'token_uri' : token_uri ,
421
+ 'auth_provider_x509_cert_url' :auth_provider_x509_cert_url ,
422
+ 'client_x509_cert_url' :client_x509_cert_url
423
+ }
424
+ return secret
425
+
378
426
def subscribe (st_obj ):
379
427
st_obj .subheader ("Subscribe" )
380
428
email = st_obj .text_input (label = "Enter Email" , value = "" , key = "na_lower_1" )
@@ -385,7 +433,9 @@ def subscribe(st_obj):
385
433
send_subscription_to_google_sheet (st_obj , row )
386
434
387
435
def send_subscription_to_google_sheet (st_obj , row ):
388
- spr = sp .spreadsheet (st_obj , 'client_secret.json' )
436
+ json_secret = readGoogleApiSecretsDict ()
437
+ #print(json_secret)
438
+ spr = sp .spreadsheet (st_obj , json_secret )
389
439
spr .writeToSheet ("CHIME Form Submissions" , row )
390
440
391
441
def write_definitions (st ):
0 commit comments