Skip to content

Commit d233ac4

Browse files
committed
#454 added reading environment variables
1) Added reading environment variables 2) Converting the env variables to json object 3) Passing json object to googleapi ServiceAccountCredentials
1 parent d05a452 commit d233ac4

File tree

2 files changed

+53
-2
lines changed

2 files changed

+53
-2
lines changed

src/penn_chime/presentation.py

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
import altair as alt
77
import numpy as np
8+
import os
9+
import json
810
import pandas as pd
911
import penn_chime.spreadsheet as sp
1012
from .constants import (
@@ -375,6 +377,52 @@ def display_sidebar(st, d: Parameters) -> Parameters:
375377
population=population,
376378
)
377379

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+
378426
def subscribe(st_obj):
379427
st_obj.subheader ("Subscribe")
380428
email = st_obj.text_input (label="Enter Email", value="", key="na_lower_1")
@@ -385,7 +433,9 @@ def subscribe(st_obj):
385433
send_subscription_to_google_sheet(st_obj, row)
386434

387435
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)
389439
spr.writeToSheet("CHIME Form Submissions", row)
390440

391441
def write_definitions(st):

src/penn_chime/spreadsheet.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ def __init__(self, st_obj, secret):
77
# use creds to create a client to interact with the Google Drive API
88
self.scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
99
#secret = 'client_secret.json'
10-
self.creds = ServiceAccountCredentials.from_json_keyfile_name(secret, self.scope)
10+
self.creds = ServiceAccountCredentials.from_json(secret)
11+
#self.creds = ServiceAccountCredentials.from_json_keyfile_name(secret, self.scope)
1112
self.client = gspread.authorize(self.creds)
1213

1314

0 commit comments

Comments
 (0)