Skip to content

Commit 327092a

Browse files
committed
fix: change date fields in AffiliationOrganizationFields to string type and add date parsing util
Signed-off-by: Yeganathan S <63534555+skwowet@users.noreply.github.com>
1 parent 9a18eb7 commit 327092a

2 files changed

Lines changed: 13 additions & 6 deletions

File tree

services/apps/git_integration/src/crowdgit/models/affiliation_info.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ class AffiliationOrganizationFields(BaseModel):
2020

2121
name: str | None = None
2222
domain: str | None = None
23-
date_start: date | None = Field(default=None, alias="dateStart")
24-
date_end: date | None = Field(default=None, alias="dateEnd")
23+
date_start: str | None = Field(default=None, alias="dateStart")
24+
date_end: str | None = Field(default=None, alias="dateEnd")
2525
is_unaffiliated: bool = Field(default=False, alias="isUnaffiliated")
2626

2727
model_config = {"populate_by_name": True}

services/apps/git_integration/src/crowdgit/services/affiliation/affiliation_service.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,13 @@ def _strip(value: str | None) -> str | None:
348348
stripped = value.strip()
349349
return stripped or None
350350

351+
@staticmethod
352+
def _parse_optional_date(value: str | None) -> date | None:
353+
stripped = AffiliationService._strip(value)
354+
if not stripped:
355+
return None
356+
return date.fromisoformat(stripped)
357+
351358
@classmethod
352359
def group_parse_rows(
353360
cls, rows: list[AffiliationParseRow]
@@ -384,8 +391,8 @@ def group_parse_rows(
384391
stint = AffiliationOrganizationStint(
385392
name="Individual",
386393
domain="individual-noaccount.com",
387-
date_start=organization.date_start,
388-
date_end=organization.date_end,
394+
date_start=cls._parse_optional_date(organization.date_start),
395+
date_end=cls._parse_optional_date(organization.date_end),
389396
is_unaffiliated=True,
390397
)
391398
elif not domain:
@@ -394,8 +401,8 @@ def group_parse_rows(
394401
stint = AffiliationOrganizationStint(
395402
name=cls._strip(organization.name),
396403
domain=domain.lower(),
397-
date_start=organization.date_start,
398-
date_end=organization.date_end,
404+
date_start=cls._parse_optional_date(organization.date_start),
405+
date_end=cls._parse_optional_date(organization.date_end),
399406
is_unaffiliated=False,
400407
)
401408

0 commit comments

Comments
 (0)