diff --git a/modules/workflows/methods/methodSharepoint/helpers/apiClient.py b/modules/workflows/methods/methodSharepoint/helpers/apiClient.py index 5b02aaab..309497a4 100644 --- a/modules/workflows/methods/methodSharepoint/helpers/apiClient.py +++ b/modules/workflows/methods/methodSharepoint/helpers/apiClient.py @@ -45,11 +45,24 @@ class ApiClientHelper: Dict with API response or error information """ try: - if not hasattr(self.services, 'sharepoint') or not self.services.sharepoint._target.accessToken: + sp = getattr(self.services, 'sharepoint', None) + if not sp: return {"error": "SharePoint service not configured with access token"} - + # Service center: accessToken on service directly. Legacy: wrapped in PublicService._target + try: + access_token = getattr(sp, 'accessToken', None) + if access_token is None: + target = getattr(sp, '_target', None) # Only legacy hub has _target + if target is not None: + access_token = getattr(target, 'accessToken', None) + except AttributeError as ae: + logger.warning(f"SharePoint token extraction failed: {ae}") + return {"error": "SharePoint service not configured with access token"} + if not access_token: + return {"error": "SharePoint service not configured with access token"} + headers = { - "Authorization": f"Bearer {self.services.sharepoint._target.accessToken}", + "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" if data and method != "PUT" else "application/octet-stream" if data else "application/json" }