inital commit
This commit is contained in:
29
server/app/mailer/commands/list_db_campaigns.py
Normal file
29
server/app/mailer/commands/list_db_campaigns.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
|
||||
from app.db.bootstrap import create_all_tables
|
||||
from app.db.models import Campaign, CampaignJob
|
||||
from app.db.session import SessionLocal
|
||||
from app.security.api_keys import authenticate_api_key
|
||||
from app.settings import settings
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description="List persisted campaigns and job counts.")
|
||||
parser.add_argument("--api-key", default=settings.dev_bootstrap_api_key)
|
||||
args = parser.parse_args()
|
||||
|
||||
create_all_tables()
|
||||
with SessionLocal() as session:
|
||||
api_key = authenticate_api_key(session, args.api_key)
|
||||
if not api_key:
|
||||
raise SystemExit("Invalid API key")
|
||||
campaigns = session.query(Campaign).filter(Campaign.tenant_id == api_key.tenant_id).order_by(Campaign.updated_at.desc()).all()
|
||||
for campaign in campaigns:
|
||||
jobs = session.query(CampaignJob).filter(CampaignJob.campaign_id == campaign.id).count()
|
||||
print(f"{campaign.id} | {campaign.status:15s} | jobs={jobs:4d} | {campaign.name}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user