Param is a datetime instead of a string

This commit is contained in:
Pablo Martin 2023-08-03 16:10:30 +02:00
parent c8d4583543
commit 1dddbf5ef1
2 changed files with 11 additions and 8 deletions

View file

@ -1,5 +1,9 @@
import datetime
import typer import typer
from typing_extensions import Annotated
import camisatoshi_wordpress_reports.controllers as controllers import camisatoshi_wordpress_reports.controllers as controllers
app = typer.Typer() app = typer.Typer()
@ -11,6 +15,8 @@ def check_health():
@app.command() @app.command()
def generate_um_report(start_date: str, end_date: str): def generate_um_report(
start_date: Annotated[datetime.datetime, typer.Option(prompt=True)],
end_date: Annotated[datetime.datetime, typer.Option(prompt=True)],
):
controllers.generate_um_report(start_date, end_date) controllers.generate_um_report(start_date, end_date)

View file

@ -40,17 +40,14 @@ def check_health():
logger.info("Connection successful. The API is reachable.") logger.info("Connection successful. The API is reachable.")
def generate_um_report(start_date: str, end_date: str): def generate_um_report(start_date: datetime.datetime, end_date: datetime.datetime) -> None:
start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d").isoformat()
end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d").isoformat()
logger.info(f"Fetching orders between {start_date} and {end_date}.") logger.info(f"Fetching orders between {start_date} and {end_date}.")
orders_in_date_range = WC_API.get( orders_in_date_range = WC_API.get(
endpoint="orders", endpoint="orders",
params={ params={
"after": start_date, "after": start_date.isoformat(),
"before": end_date, "before": end_date.isoformat(),
"per_page": 100, "per_page": 100,
"status": "processing,completed", "status": "processing,completed",
}, },