Skip to content

Commit

Permalink
minor code updates
Browse files Browse the repository at this point in the history
  • Loading branch information
ciur committed Nov 14, 2024
1 parent 9cc7a25 commit 81e97e4
Showing 1 changed file with 17 additions and 14 deletions.
31 changes: 17 additions & 14 deletions papermerge/core/features/users/cli/cli.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,31 @@
from typing import Sequence

import typer
from rich.console import Console
from rich.table import Table
from sqlalchemy import select
from sqlalchemy.exc import NoResultFound

from papermerge.core.db.engine import Session
from papermerge.core.features.users.db import orm as usr_orm
from papermerge.core import orm, schema, db
from papermerge.core.features.users.db import api as usr_dbapi
from papermerge.core.features.users import schema as usr_schema


app = typer.Typer(help="Users management")
console = Console()


@app.command(name="ls")
def list_users():
def list_users(page_size: int = 10, page_number: int = 1):
"""List users"""
with Session() as db_session:
users: list[usr_schema.User] = usr_dbapi.get_users(db_session)
with db.Session() as db_session:
users: schema.PaginatedResponse[schema.User] = usr_dbapi.get_users(
db_session, page_size=page_size, page_number=page_number
)

if len(users) == 0:
if len(users.items) == 0:
console.print("No users found")
else:
print_users(users)
print_users(users.items)


@app.command(name="create")
Expand All @@ -40,7 +43,7 @@ def create_user_cmd(
if email is None:
email = f"{username}@papermerge.com"

with Session() as db_session:
with db.Session() as db_session:
user, error = usr_dbapi.create_user(
db_session,
username=username,
Expand All @@ -62,7 +65,7 @@ def delete_user_cmd(username: str):
"""Deletes user"""

try:
with Session() as db_session:
with db.Session() as db_session:
usr_dbapi.delete_user(
db_session,
username=username,
Expand All @@ -79,10 +82,10 @@ def update_user_cmd(username: str, superuser: bool = False):
"""Update user"""

try:
with Session() as db_session:
stmt = select(usr_orm.User).where(usr_orm.User.username == username)
with db.Session() as db_session:
stmt = select(orm.User).where(orm.User.username == username)
user = db_session.execute(stmt).scalar()
attrs = usr_schema.UpdateUser(is_superuser=superuser)
attrs = schema.UpdateUser(is_superuser=superuser)
usr_dbapi.update_user(db_session, user_id=user.id, attrs=attrs)
except NoResultFound:
console.print(f"User [bold]{username}[/bold] not found", style="red")
Expand All @@ -91,7 +94,7 @@ def update_user_cmd(username: str, superuser: bool = False):
console.print(f"User [bold]{username}[/bold] successfully updated", style="green")


def print_users(users: list[usr_schema.User]):
def print_users(users: Sequence[schema.User]):
table = Table(title="Users")

table.add_column("ID", no_wrap=True)
Expand Down

0 comments on commit 81e97e4

Please sign in to comment.