Files changed (1) hide show
  1. app.py +41 -36
app.py CHANGED
@@ -20,9 +20,9 @@ def get_image_as_base64(image_path):
20
  # Load credentials from environment variables
21
  SERVICE_ACCOUNT_INFO = {
22
  "type": "service_account",
23
- "project_id": os.environ.get("project_id"),
24
  "private_key_id": os.environ.get("private_key_id"),
25
- "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCU+RlXQVzTifBI\nqDoj1yt2sLvFepy9edxEjAwAdyM0ICesvB6SCFpVGV3dV19c1PiwqqsnzGSGz3ji\nnSOxFXEve5pXFziCDVVIeaQ7g59GYLHOfKUtvqGewpxXm6gP1yrzHprpbHpBomXW\nnZNvIZ/SWzn8n4CjWV5A4V1mqfZq9OkBlJRsjJ0gh84g7QMQZ45lBrev1BUK5DtY\n8lMjP5XkQJGT4Z4km+qdsjMf+QCKLU5U2dsvNp1vViElKCwok9PfCeF+/fYX7WW5\nddpNkFC8/iOK9hf6jYbRW9Luo3OEqHV5uyqfBDQLHiZw4WuOvuY92TpWhkSlQsaN\nZiAQNR/lAgMBAAECggEAFDPJt3cCNx+8KaZCqCycVM630BqGGf3mHJefYwrFB+Ma\nbkbeoHAoi+TSQVuBb63kAdVLO6zwrwWAv76Oogul20oYTpo0DBLxz0/LsVRyq5Ee\nW8G0hsUU1tpOaGUQAAHubaTnXiNbWv5CcD3TSh1Vtqmvbe5VfBF5AjRtvafr5moV\n/oiKiOHNCR4QkA0kgynafTGd4UkZ+xekh6nWAQcj/Ri4BgYYckzHgIn/4eXE88p4\nq1L6JF2w0GHolLHaDpDBqii4CIhSc7i1jmM5NRriGfetzinR+ch0dVOt0ssdpkKK\nRxntHK93MhBUfue9/ZKZXlRhk7LfNyqfL99ghkhrIQKBgQDQ+QP7PD+JKuw+b6r/\n+2KhOu3A8diWp0euJsiHBZeIzmx9c7XLHbnv/H3NhLdhfGIBel/YmrT+hGUFiCa2\nn+7hGdgBjVt0EYGSxfBqwDpgBsPfEqsCIhOiLQSuECjfJV2XTRffhwVVzAwEQMan\nRwY6Pfh7VBSC7YTT7tCW+ohkMQKBgQC2f3uy4m7PdvONybirm8GTvVB0HdR0uDig\nDdg7iRuDc1YVksQ3I9Mi0TUTeTDNxeZ6eKNNY9EwIi61FKlacg11dXBCgXIHxwvw\ntBmeJffYLLijrF5D30pYJ39sO6YTdhXz8k2JQ9kjPygRA35ynD7frUYY8wVh2vId\n7VzSiBLN9QKBgQC7yMl3HnDJxjR89sPnO/Mph1bXJ3zGBJQ5Psi77J57ZWPAaBZY\n6+GGcpJp+HUBuVAom9s9PeifPkG5ctu3CIkU5rBg1LH13zVcu1qL0ymh2PJypsfd\nJtoVxfaKpCLWQzGTIMfvKdn1e2Lg/4SEFSLXe5Cq4qd78AyIlfYDdibSQQKBgQCW\n/KAN3tLI6GQWgbc8m4+rOKywdOGKc8O9f9bPYt8VgT3OeW/HIueS3b1o0BJ1nG7U\nEq0g4R14Ej/MZzy57LR/4lqvW0NJdf/F9GthcY49FrroBzqyMrHif0Mn+62qWj9N\nZcGKeEzUoXL3qIlcLzLBgi0FhUKFtEwuQGxUbmoIZQKBgQCYL9by084u0Sf1858i\narIVVg6baBK+MDnxG0YNTVovZv31n30Q0saT0KYZEVWbPDYL/Q+0zfn4qmI1L9Sd\nHedzZ1fREI61XwP/WxDojgZ22fkGbMVfnINjBwbWFMiKf5k7wQzhI5t+oOT0l9ti\n2GsPiT9eCYuz6WV4+Q9RXolrhQ==\n-----END PRIVATE KEY-----\n",
26
  "client_email": os.environ.get("client_email"),
27
  "client_id": os.environ.get("client_id"),
28
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
@@ -32,7 +32,6 @@ SERVICE_ACCOUNT_INFO = {
32
  "universe_domain": "googleapis.com"
33
  }
34
 
35
-
36
  SCOPES = ['https://www.googleapis.com/auth/drive']
37
 
38
 
@@ -183,43 +182,49 @@ def save_mapping_file_to_drive():
183
  for file in files:
184
  # Get the ID and name of the first Excel file found in the folder
185
  existing_file_id = file['id']
186
- existing_file_name = file['name']
187
 
188
- # Delete the existing file
189
- service.files().delete(fileId=existing_file_id).execute()
 
190
 
191
- file_metadata = {'name': MAPPING_FILENAME }
192
- media = MediaFileUpload(MAPPING_FILENAME, mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
193
- service.files().create(body=file_metadata, media_body=media, fields='id').execute()
194
 
195
- def pull_mapping_file_from_drive():
196
- creds = authenticate()
197
- # service = build('drive', 'v3', credentials=creds)
198
- # creds = Credentials.from_authorized_user_info(credentials_dict)
199
- # Authenticate with Google Drive API
200
- service = build('drive', 'v3', credentials=creds)
201
 
202
- results = service.files().list(
203
- q="mimeType='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'",
204
- fields="files(id, name)").execute()
205
- files = results.get('files', [])
206
- files = [i for i in files if i.get('name')==MAPPING_FILENAME]
207
- if files:
208
- file_id = files[0]['id']
209
- file_name = files[0]['name']
210
- request = service.files().get_media(fileId=file_id)
211
- fh = open(file_name, 'wb')
212
- downloader = MediaIoBaseDownload(fh, request)
213
-
214
- # Execute the download
215
- done = False
216
- while not done:
217
- status, done = downloader.next_chunk()
218
-
219
- fh.close()
220
- return 1
221
-
222
- return 0
 
 
 
 
 
 
 
 
 
 
 
 
223
 
224
  def delete_master_file():
225
  creds = authenticate()
 
20
  # Load credentials from environment variables
21
  SERVICE_ACCOUNT_INFO = {
22
  "type": "service_account",
23
+ "project_id": os.environ.get("project_id",),
24
  "private_key_id": os.environ.get("private_key_id"),
25
+ "private_key": os.environ.get("private_key"),
26
  "client_email": os.environ.get("client_email"),
27
  "client_id": os.environ.get("client_id"),
28
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
 
32
  "universe_domain": "googleapis.com"
33
  }
34
 
 
35
  SCOPES = ['https://www.googleapis.com/auth/drive']
36
 
37
 
 
182
  for file in files:
183
  # Get the ID and name of the first Excel file found in the folder
184
  existing_file_id = file['id']
 
185
 
186
+ # Overwrite the existing file
187
+ media = MediaFileUpload(MAPPING_FILENAME, mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
188
+ service.files().update(fileId=existing_file_id,media_body=media).execute()
189
 
 
 
 
190
 
191
+ # file_metadata = {'name': MAPPING_FILENAME }
192
+ # media = MediaFileUpload(MAPPING_FILENAME, mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
193
+ # service.files().create(body=file_metadata, media_body=media, fields='id').execute()
 
 
 
194
 
195
+ def pull_mapping_file_from_drive():
196
+ try:
197
+ creds = authenticate()
198
+ # service = build('drive', 'v3', credentials=creds)
199
+ # creds = Credentials.from_authorized_user_info(credentials_dict)
200
+ # Authenticate with Google Drive API
201
+ service = build('drive', 'v3', credentials=creds)
202
+
203
+ results = service.files().list(
204
+ q="mimeType='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'",
205
+ fields="files(id, name)").execute()
206
+
207
+ files = results.get('files', [])
208
+ files = [i for i in files if i.get('name')==MAPPING_FILENAME]
209
+ if files:
210
+ file_id = files[0]['id']
211
+ file_name = files[0]['name']
212
+ request = service.files().get_media(fileId=file_id)
213
+ fh = open(file_name, 'wb')
214
+ downloader = MediaIoBaseDownload(fh, request)
215
+
216
+ # Execute the download
217
+ done = False
218
+ while not done:
219
+ status, done = downloader.next_chunk()
220
+
221
+ fh.close()
222
+ return 1
223
+
224
+ return 0
225
+ except Exception as e:
226
+ print(e)
227
+ return 0
228
 
229
  def delete_master_file():
230
  creds = authenticate()