GVAmaresh
ini
c87f53a
from googleapiclient.http import MediaFileUpload, MediaIoBaseUpload
import json
import os
from io import BytesIO
import time
import io
from comparator.report import checkRespectiveFolder
def DeleteSummary(service, fileID):
try:
fake_folder_id = checkRespectiveFolder(service)
result_folder_id = checkRespectiveFolder(
service, path=fake_folder_id, Folder_Name="Result"
)
response = (
service.files()
.list(
q="name contains 'data-'",
spaces="drive",
fields="files(id, name)",
)
.execute()
)
list_all_files = response.get("files", [])
for list_files in list_all_files:
if list_files["name"].startswith("data-"):
latest_file_id = list_files["id"]
existing_data = (
service.files().get_media(fileId=latest_file_id).execute()
)
existing_details = json.loads(existing_data.decode("utf-8"))
updated_data = [
data for data in existing_details if data["id"] != fileID
]
with open(list_files["name"], "w", encoding="utf-8") as json_file:
json.dump(updated_data, json_file, ensure_ascii=False)
media = MediaFileUpload(list_files["name"], mimetype="application/json")
service.files().update(
fileId=latest_file_id, media_body=media
).execute()
return
return
except Exception as e:
print(f"An error occurred: {str(e)}")
def AddSummary(service, details):
try:
fake_folder_id = checkRespectiveFolder(service)
result_folder_id = checkRespectiveFolder(
service, path=fake_folder_id, Folder_Name="Result"
)
response = (
service.files()
.list(
q="name contains 'data-'",
spaces="drive",
fields="files(id, name)",
)
.execute()
)
list_all_files = response.get("files", [])
is_selected = False
file_name = ""
for list_files in list_all_files:
if list_files["name"].startswith("data-"):
latest_file_id = str(list_files["id"])
existing_data = service.files().get_media(fileId=latest_file_id).execute()
if existing_data:
existing_details = json.loads(existing_data.decode("utf-8"))
with open(list_files["name"], "w", encoding="utf-8") as json_file:
json.dump(existing_details, json_file, ensure_ascii=False)
if len(existing_details) < 100:
is_selected = True
file_name = list_files["name"]
with open(file_name, "r", encoding="utf-8") as json_file:
existing_data = json.load(json_file)
existing_data.append(details)
with open(file_name, "w", encoding="utf-8") as json_file:
json.dump(existing_data, json_file)
json_file.close()
file_metadata = {"name": file_name, "parents": [result_folder_id]}
media = MediaFileUpload(file_name, mimetype="application/json")
service.files().update(fileId=latest_file_id, media_body=media).execute()
return
else:
break
if not is_selected:
existing_details = [details]
file_name = f"data-{len(list_all_files)}.json"
json_data = json.dumps(existing_details)
with open(file_name, "w") as f:
f.write(json_data)
file_metadata = {"name": file_name, "parents": [result_folder_id]}
media = MediaFileUpload(
file_name, mimetype="application/json", resumable=True
)
service.files().create(
body=file_metadata, media_body=media, fields="id"
).execute()
return
except Exception as e:
print(f"An error occurred here: {str(e)}")
def Get_All_Reports(service):
try:
fake_folder_id = checkRespectiveFolder(service)
result_folder_id = checkRespectiveFolder(
service, path=fake_folder_id, Folder_Name="Result"
)
response = (
service.files()
.list(
q="name contains 'data-'",
spaces="drive",
fields="files(id, name)",
)
.execute()
)
list_all_files = response["files"]
all_reports = []
for list_files in list_all_files:
if list_files["name"].startswith("data-"):
latest_file_id = str(list_files["id"])
existing_data = (
service.files().get_media(fileId=latest_file_id).execute()
)
existing_details = json.loads(existing_data.decode("utf-8"))
file_name = list_files["name"]
with open(file_name, "w", encoding="utf-8") as json_file:
json.dump(existing_details, json_file, ensure_ascii=False)
with open(file_name, "r", encoding="utf-8") as json_file:
existing_data = json.load(json_file)
all_reports.extend(existing_details)
return all_reports
except Exception as e:
print(f"An error occurred: {str(e)}")