Skip to content

Commit

Permalink
Update created_at field in api_key/crud.py and api_key/model.py (#1698)
Browse files Browse the repository at this point in the history
* Update created_at field in api_key/crud.py and api_key/model.py
  • Loading branch information
ogabrielluiz authored Apr 13, 2024
1 parent 23f374d commit cc14c51
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ def create_api_key(session: Session, api_key_create: ApiKeyCreate, user_id: UUID
api_key=generated_api_key,
name=api_key_create.name,
user_id=user_id,
created_at=api_key_create.created_at or datetime.datetime.now(datetime.timezone.utc),
)

session.add(api_key)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,28 @@
from uuid import UUID, uuid4

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:
from langflow.services.database.models.user import User


def utc_now():
return datetime.now(timezone.utc)


class ApiKeyBase(SQLModel):
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)
total_uses: int = Field(default=0)
is_active: bool = Field(default=True)


class ApiKey(ApiKeyBase, table=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)
# User relationship
# Delete API keys when user is deleted
Expand All @@ -34,10 +37,11 @@ class ApiKey(ApiKeyBase, table=True):
class ApiKeyCreate(ApiKeyBase):
api_key: Optional[str] = None
user_id: Optional[UUID] = None
created_at: Optional[datetime] = Field(default_factory=utc_now)

@field_validator("created_at", mode="before")
def set_created_at(cls, v):
return v or datetime.now(timezone.utc)
return v or utc_now()


class UnmaskedApiKeyRead(ApiKeyBase):
Expand Down

0 comments on commit cc14c51

Please sign in to comment.