From a433c8248852c516278458672392c22f1279b0f7 Mon Sep 17 00:00:00 2001 From: Fusion Date: Tue, 19 May 2026 11:42:14 +0200 Subject: [PATCH] fix: datetime serialization in API response models Tool types and git repositories response models declared created_at/ updated_at as str but ORM returns datetime objects. Change to datetime type so Pydantic serializes correctly to ISO format strings. --- apps/api/src/api/git_repositories.py | 6 ++++-- apps/api/src/api/tool_types.py | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/api/src/api/git_repositories.py b/apps/api/src/api/git_repositories.py index baed40d..33f73ec 100644 --- a/apps/api/src/api/git_repositories.py +++ b/apps/api/src/api/git_repositories.py @@ -2,6 +2,7 @@ import os import shutil import subprocess import uuid +from datetime import datetime from fastapi import APIRouter, Depends, HTTPException, Response, status from pydantic import BaseModel, ConfigDict @@ -57,8 +58,9 @@ class GitRepositoryResponse(BaseModel): owner_id: uuid.UUID is_mirror: bool remote_url: str | None - last_push: str | None - created_at: str | None + last_push: datetime | None + created_at: datetime + updated_at: datetime @router.post("/{project_id}/repositories", response_model=GitRepositoryResponse, status_code=status.HTTP_201_CREATED) diff --git a/apps/api/src/api/tool_types.py b/apps/api/src/api/tool_types.py index 9356a75..25a3f59 100644 --- a/apps/api/src/api/tool_types.py +++ b/apps/api/src/api/tool_types.py @@ -1,4 +1,5 @@ import uuid +from datetime import datetime import yaml from fastapi import APIRouter, Depends, HTTPException, status @@ -112,8 +113,8 @@ class ToolTypeResponse(BaseModel): required_variables: list[str] is_builtin: bool created_by_id: uuid.UUID | None - created_at: str - updated_at: str + created_at: datetime + updated_at: datetime @router.post("", response_model=ToolTypeResponse, status_code=status.HTTP_201_CREATED)