diff --git a/gso/api/api_v1/endpoints/imports.py b/gso/api/api_v1/endpoints/imports.py index 9d39d680486a295c15c9967dd3869308068fcc5f..74390a80af68c197e7757d056996c015633916d3 100644 --- a/gso/api/api_v1/endpoints/imports.py +++ b/gso/api/api_v1/endpoints/imports.py @@ -42,6 +42,7 @@ class SiteImport(BaseModel): site_internal_id: int site_tier: SiteTier site_ts_address: str + customer: str @router.post("/sites", status_code=status.HTTP_201_CREATED, tags=["Import"]) @@ -70,7 +71,7 @@ def import_site(site: SiteImport) -> Dict[str, Any]: raise HTTPException(status_code=status.HTTP_409_CONFLICT, detail="Multiple subscriptions found.") pid = start_process("import_site", site.dict()) - return {"detail": "Site import process started.", "pid": pid} + return {"detail": "Site added successfully.", "pid": pid} class RouterImportModel(BaseModel): diff --git a/gso/workflows/tasks/import_site.py b/gso/workflows/tasks/import_site.py index d743628fdc9a96148ba83c3130e263182eb6e980..22bd55d91852ced80e48ed44d0b520d938f9c781 100644 --- a/gso/workflows/tasks/import_site.py +++ b/gso/workflows/tasks/import_site.py @@ -9,13 +9,15 @@ from orchestrator.workflows.steps import resync, set_status, store_process_subsc from gso.products.product_blocks.site import SiteTier from gso.products.product_types import site +from gso.services.crm import get_customer_by_name from gso.workflows.site.create_site import initialize_subscription @step("Create subscription") -def create_subscription() -> State: +def create_subscription(customer: str) -> State: + customer_id: UUID = get_customer_by_name(customer)["id"] product_id: UUID = ProductTable.query.filter_by(product_type="Site").first().product_id - subscription = site.SiteInactive.from_product_id(product_id, uuid4()) + subscription = site.SiteInactive.from_product_id(product_id, customer_id) return { "subscription": subscription, @@ -38,6 +40,7 @@ def generate_initial_input_form() -> FormGenerator: site_internal_id: int site_tier: SiteTier site_ts_address: str + customer: str user_input = yield ImportSite return user_input.dict()