41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from dotenv import load_dotenv, find_dotenv
|
|
load_dotenv(find_dotenv())
|
|
import os
|
|
import modules.logger_tool as logger
|
|
log_name = 'api_modules_msgraph_client'
|
|
log_dir = os.getenv("LOG_PATH", "/logs") # Default path as fallback
|
|
logging = logger.get_logger(
|
|
name=log_name,
|
|
log_level=os.getenv("LOG_LEVEL", "DEBUG"),
|
|
log_path=log_dir,
|
|
log_file=log_name,
|
|
runtime=True,
|
|
log_format='default'
|
|
)
|
|
import requests
|
|
|
|
GRAPH_API_ENDPOINT = "https://graph.microsoft.com/v1.0"
|
|
|
|
class MSGraphClient:
|
|
def __init__(self, access_token: str):
|
|
self.access_token = access_token
|
|
|
|
def get_headers(self):
|
|
return {
|
|
"Authorization": f"Bearer {self.access_token}",
|
|
"Content-Type": "application/json",
|
|
}
|
|
|
|
def get_onenote_notebooks(self):
|
|
url = f"{GRAPH_API_ENDPOINT}/me/onenote/notebooks"
|
|
response = requests.get(url, headers=self.get_headers())
|
|
|
|
if response.status_code == 200:
|
|
return response.json().get('value', [])
|
|
else:
|
|
raise Exception(f"Error fetching notebooks: {response.status_code}, {response.text}")
|
|
|
|
# Function to initialize the MSGraph client
|
|
def get_msgraph_client(access_token: str):
|
|
return MSGraphClient(access_token)
|