52 lines
1.5 KiB
Python
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()
|
|
|