Big-Link-Man/scripts/set_money_site_url.py

52 lines
1.5 KiB
Python

"""
Set the money_site_url for a project
Usage:
uv run python scripts/set_money_site_url.py --project-id 1 --url "https://example.com"
uv run python scripts/set_money_site_url.py --project-id 1 --url "https://www.mysite.com"
"""
import click
from src.database.session import db_manager
from src.database.repositories import ProjectRepository
@click.command()
@click.option('--project-id', '-p', required=True, type=int, help='Project ID')
@click.option('--url', '-u', required=True, help='Money site URL (e.g., https://example.com)')
def set_money_site_url(project_id: int, url: str):
"""Set the money_site_url for a project"""
if not url.startswith('http://') and not url.startswith('https://'):
click.echo("Error: URL must start with http:// or https://", err=True)
return
url = url.rstrip('/')
session = db_manager.get_session()
try:
project_repo = ProjectRepository(session)
project = project_repo.get_by_id(project_id)
if not project:
click.echo(f"Error: Project {project_id} not found", err=True)
return
old_url = project.money_site_url or "(not set)"
project.money_site_url = url
project_repo.update(project)
click.echo(f"Success: Updated project {project_id}: {project.name}")
click.echo(f" Old URL: {old_url}")
click.echo(f" New URL: {url}")
finally:
session.close()
if __name__ == "__main__":
set_money_site_url()