update airtable indexer

This commit is contained in:
CREDO23 2025-08-26 19:17:46 +02:00
parent 1e0f3a1067
commit 45d2c18c16
7 changed files with 318 additions and 77 deletions

View file

@ -1,6 +1,6 @@
from datetime import UTC, datetime
from pydantic import BaseModel
from pydantic import BaseModel, field_validator
class AirtableAuthCredentialsBase(BaseModel):
@ -49,3 +49,18 @@ class AirtableAuthCredentialsBase(BaseModel):
expires_at=expires_at,
scope=data.get("scope"),
)
@field_validator("expires_at", mode="before")
@classmethod
def ensure_aware_utc(cls, v):
# Strings like "2025-08-26T14:46:57.367184"
if isinstance(v, str):
# add +00:00 if missing tz info
if v.endswith("Z"):
return datetime.fromisoformat(v.replace("Z", "+00:00"))
dt = datetime.fromisoformat(v)
return dt if dt.tzinfo else dt.replace(tzinfo=UTC)
# datetime objects
if isinstance(v, datetime):
return v if v.tzinfo else v.replace(tzinfo=UTC)
return v