From 06b92eb22e5d9b0a62364b65f70ada67843bec67 Mon Sep 17 00:00:00 2001
From: Karel van Klink <karel.vanklink@geant.org>
Date: Wed, 1 May 2024 17:43:54 +0200
Subject: [PATCH] Update settings, fix attribute error in sharepoint client

---
 gso/services/sharepoint.py | 11 ++++-------
 gso/settings.py            | 12 +++++-------
 2 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/gso/services/sharepoint.py b/gso/services/sharepoint.py
index 4b4f421c..b4b412db 100644
--- a/gso/services/sharepoint.py
+++ b/gso/services/sharepoint.py
@@ -5,8 +5,8 @@ from msgraph import GraphServiceClient
 from msgraph.generated.models.field_value_set import FieldValueSet
 from msgraph.generated.models.list_item import ListItem
 from msgraph.generated.models.list_item_collection_response import ListItemCollectionResponse
+from msgraph.generated.models.site import Site
 from msgraph.generated.sites.item.lists.item.items.items_request_builder import ItemsRequestBuilder
-from products import Site
 
 from gso.settings import load_oss_params
 
@@ -36,15 +36,13 @@ class SPClient:
 
         :param str list_name: The name of the list.
         """
-        query_params = ItemsRequestBuilder.ItemsRequestBuilderGetQueryParameters(
-            expand=["fields($select=Title,LinkTitle,CHECK_LIST_STATE,VERIFY_LIBRENMS)"],
-        )
+        query_params = ItemsRequestBuilder.ItemsRequestBuilderGetQueryParameters(expand=["fields"])
         request_configuration = ItemsRequestBuilder.ItemsRequestBuilderGetRequestConfiguration(
             query_parameters=query_params
         )
         return (
             await self.client.sites.by_site_id(self.site_id)
-            .lists.by_list_id(getattr(self.list_ids, list_name))
+            .lists.by_list_id(self.list_ids[list_name])
             .items.get(request_configuration=request_configuration)
         )
 
@@ -57,6 +55,5 @@ class SPClient:
         request_body = ListItem(fields=FieldValueSet(additional_data=fields))
         return (
             await self.client.sites.by_site_id(self.site_id)
-            .lists.by_list_id(getattr(self.list_ids, list_name))
-            .items.post(request_body)
+            .lists.by_list_id(self.list_ids[list_name]).items.post(request_body)
         )
diff --git a/gso/settings.py b/gso/settings.py
index cb090730..0948862e 100644
--- a/gso/settings.py
+++ b/gso/settings.py
@@ -11,8 +11,9 @@ import os
 from pathlib import Path
 from typing import Annotated
 
-from pydantic import BaseSettings, Field, HttpUrl
+from pydantic import Field, HttpUrl
 from pydantic_forms.types import UUIDstr
+from pydantic_settings import BaseSettings
 from typing_extensions import Doc
 
 logger = logging.getLogger(__name__)
@@ -154,8 +155,8 @@ class EmailParams(BaseSettings):
     smtp_host: str
     smtp_port: int
     starttls_enabled: bool
-    smtp_username: str | None
-    smtp_password: str | None
+    smtp_username: str | None = None
+    smtp_password: str | None = None
 
 
 class SharepointParams(BaseSettings):
@@ -167,10 +168,7 @@ class SharepointParams(BaseSettings):
     certificate_password: str
     site_id: UUIDstr
     list_ids: dict[str, UUIDstr]
-    scopes: list[HttpUrl]
-    #:  .. deprecated :: 1.7
-    #:     Not used anymore, since this can be inferred from SharePoint :term:`API` responses.
-    checklist_site_url: HttpUrl | None
+    scopes: list[str]
 
 
 class OSSParams(BaseSettings):
-- 
GitLab