Update created_at field in api_key/crud.py and api_key/model.py (#1698)
* Update created_at field in api_key/crud.py and api_key/model.py
This commit is contained in:
parent
23f374db71
commit
cc14c51238
2 changed files with 11 additions and 6 deletions
|
|
@ -24,6 +24,7 @@ def create_api_key(session: Session, api_key_create: ApiKeyCreate, user_id: UUID
|
||||||
api_key=generated_api_key,
|
api_key=generated_api_key,
|
||||||
name=api_key_create.name,
|
name=api_key_create.name,
|
||||||
user_id=user_id,
|
user_id=user_id,
|
||||||
|
created_at=api_key_create.created_at or datetime.datetime.now(datetime.timezone.utc),
|
||||||
)
|
)
|
||||||
|
|
||||||
session.add(api_key)
|
session.add(api_key)
|
||||||
|
|
|
||||||
|
|
@ -3,17 +3,18 @@ from typing import TYPE_CHECKING, Optional
|
||||||
from uuid import UUID, uuid4
|
from uuid import UUID, uuid4
|
||||||
|
|
||||||
from pydantic import field_validator, validator
|
from pydantic import field_validator, validator
|
||||||
from sqlmodel import Field, Relationship, SQLModel, Column, func, DateTime
|
from sqlmodel import Column, DateTime, Field, Relationship, SQLModel, func
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from langflow.services.database.models.user import User
|
from langflow.services.database.models.user import User
|
||||||
|
|
||||||
|
|
||||||
|
def utc_now():
|
||||||
|
return datetime.now(timezone.utc)
|
||||||
|
|
||||||
|
|
||||||
class ApiKeyBase(SQLModel):
|
class ApiKeyBase(SQLModel):
|
||||||
name: Optional[str] = Field(index=True, nullable=True, default=None)
|
name: Optional[str] = Field(index=True, nullable=True, default=None)
|
||||||
created_at: datetime = Field(
|
|
||||||
default=None, sa_column=Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
|
|
||||||
)
|
|
||||||
last_used_at: Optional[datetime] = Field(default=None, nullable=True)
|
last_used_at: Optional[datetime] = Field(default=None, nullable=True)
|
||||||
total_uses: int = Field(default=0)
|
total_uses: int = Field(default=0)
|
||||||
is_active: bool = Field(default=True)
|
is_active: bool = Field(default=True)
|
||||||
|
|
@ -21,7 +22,9 @@ class ApiKeyBase(SQLModel):
|
||||||
|
|
||||||
class ApiKey(ApiKeyBase, table=True):
|
class ApiKey(ApiKeyBase, table=True):
|
||||||
id: UUID = Field(default_factory=uuid4, primary_key=True, unique=True)
|
id: UUID = Field(default_factory=uuid4, primary_key=True, unique=True)
|
||||||
|
created_at: datetime = Field(
|
||||||
|
default=None, sa_column=Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
|
||||||
|
)
|
||||||
api_key: str = Field(index=True, unique=True)
|
api_key: str = Field(index=True, unique=True)
|
||||||
# User relationship
|
# User relationship
|
||||||
# Delete API keys when user is deleted
|
# Delete API keys when user is deleted
|
||||||
|
|
@ -34,10 +37,11 @@ class ApiKey(ApiKeyBase, table=True):
|
||||||
class ApiKeyCreate(ApiKeyBase):
|
class ApiKeyCreate(ApiKeyBase):
|
||||||
api_key: Optional[str] = None
|
api_key: Optional[str] = None
|
||||||
user_id: Optional[UUID] = None
|
user_id: Optional[UUID] = None
|
||||||
|
created_at: Optional[datetime] = Field(default_factory=utc_now)
|
||||||
|
|
||||||
@field_validator("created_at", mode="before")
|
@field_validator("created_at", mode="before")
|
||||||
def set_created_at(cls, v):
|
def set_created_at(cls, v):
|
||||||
return v or datetime.now(timezone.utc)
|
return v or utc_now()
|
||||||
|
|
||||||
|
|
||||||
class UnmaskedApiKeyRead(ApiKeyBase):
|
class UnmaskedApiKeyRead(ApiKeyBase):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue