Spaces:
Sleeping
Sleeping
# sheets_integration.py | |
import os | |
import json | |
from google.oauth2.credentials import Credentials | |
from google.oauth2 import service_account | |
from googleapiclient.discovery import build | |
from google.oauth2.credentials import Credentials | |
import pandas as pd | |
class SheetsManager: | |
def __init__(self, credentials_path, spreadsheet_id): | |
self.credentials_path = credentials_path | |
self.spreadsheet_id = spreadsheet_id | |
self.credentials = None | |
self.service = None | |
self.initialize_service() | |
def initialize_service(self): | |
"""Initialize Google Sheets API service""" | |
self.credentials = service_account.Credentials.from_service_account_file( | |
self.credentials_path, | |
scopes=['https://www.googleapis.com/auth/spreadsheets'] | |
) | |
self.service = build('sheets', 'v4', credentials=self.credentials) | |
def append_row(self, row_data): | |
"""Append a row to the spreadsheet""" | |
try: | |
body = { | |
'values': [list(row_data.values())] | |
} | |
result = self.service.spreadsheets().values().append( | |
spreadsheetId=self.spreadsheet_id, | |
range='Sheet1!A:I', # Adjust range as needed | |
valueInputOption='RAW', | |
body=body | |
).execute() | |
return True | |
except Exception as e: | |
print(f"Error appending to sheet: {str(e)}") | |
return False | |
def get_all_requests(self): | |
"""Get all requests from the spreadsheet""" | |
try: | |
result = self.service.spreadsheets().values().get( | |
spreadsheetId=self.spreadsheet_id, | |
range='Sheet1!A:I' # Adjust range as needed | |
).execute() | |
return pd.DataFrame(result.get('values', [])) | |
except Exception as e: | |
print(f"Error reading sheet: {str(e)}") | |
return None |