returning list[FrontEndUser] from api/v1/frontend_users/ endpoint

This commit is contained in:
Andreas Köpf
2023-01-12 22:58:43 +01:00
parent 0d646e72f3
commit 945c645818
4 changed files with 19 additions and 10 deletions
@@ -22,7 +22,7 @@ def upgrade() -> None:
op.add_column("user", sa.Column("deleted", sa.Boolean(), server_default=sa.text("false"), nullable=False))
op.add_column(
"user",
sa.Column("notes", sqlmodel.sql.sqltypes.AutoString(length=1024), server_default=sa.text("''"), nullable=False),
sa.Column("notes", sqlmodel.sql.sqltypes.AutoString(length=1024), server_default="", nullable=False),
)
# ### end Alembic commands ###
@@ -15,10 +15,10 @@ from starlette.status import HTTP_204_NO_CONTENT
router = APIRouter()
@router.get("/", response_model=list[protocol.User])
@router.get("/", response_model=list[protocol.FrontEndUser])
def get_users(
api_client_id: UUID = None,
max_count: int = Query(10, gt=0, le=20), # TODO: refine bounds
max_count: int = Query(100, gt=0, le=10000),
gte: str = None,
lt: str = None,
auth_method: str = None,
@@ -27,7 +27,7 @@ def get_users(
):
pr = UserRepository(db, api_client)
users = pr.query_users(api_client_id=api_client_id, limit=max_count, gte=gte, lt=lt, auth_method=auth_method)
return [u.to_protocol_user() for u in users]
return [u.to_protocol_frontend_user() for u in users]
@router.get("/{auth_method}/{username}", response_model=protocol.FrontEndUser)
@@ -43,9 +43,7 @@ def query_frontend_user(
"""
ur = UserRepository(db, api_client)
user = ur.query_frontend_user(auth_method, username, api_client_id)
return protocol.FrontEndUser(
id=user.username, display_name=user.display_name, auth_method=user.auth_method, user_id=user.id
)
return user.to_protocol_frontend_user()
@router.get("/{auth_method}/{username}/messages", response_model=list[protocol.Message])
+11 -3
View File
@@ -25,8 +25,16 @@ class User(SQLModel, table=True):
)
api_client_id: UUID = Field(foreign_key="api_client.id")
enabled: bool = Field(sa_column=sa.Column(sa.Boolean, nullable=False, server_default=sa.true()))
notes: str = Field(sa_column=sa.Column(AutoString(length=1024), nullable=False, server_default="''"))
notes: str = Field(sa_column=sa.Column(AutoString(length=1024), nullable=False, server_default=""))
deleted: bool = Field(sa_column=sa.Column(sa.Boolean, nullable=False, server_default=sa.false()))
def to_protocol_user(self):
return protocol.User(id=self.username, display_name=self.display_name, auth_method=self.auth_method)
def to_protocol_frontend_user(self):
return protocol.FrontEndUser(
user_id=self.id,
id=self.username,
display_name=self.display_name,
auth_method=self.auth_method,
enabled=self.enabled,
deleted=self.deleted,
notes=self.notes,
)
@@ -31,6 +31,9 @@ class User(BaseModel):
class FrontEndUser(User):
user_id: UUID
enabled: bool
deleted: bool
notes: str
class ConversationMessage(BaseModel):