diff --git a/gso/api/v1/imports.py b/gso/api/v1/imports.py index 639443b0f150086104b3b60d76b772e2e3e99b47..754a5250fb79075b9800d27cd00e2bcb465a6f5b 100644 --- a/gso/api/v1/imports.py +++ b/gso/api/v1/imports.py @@ -17,13 +17,9 @@ from gso.products.product_blocks.site import SiteTier from gso.products.product_types.router import RouterVendor from gso.services import subscriptions from gso.services.crm import CustomerNotFoundError, get_customer_by_name -from gso.utils.helpers import ( - LAGMember, - validate_country_code, - validate_ipv4_or_ipv6, - validate_site_fields_is_unique, - validate_site_name, -) +from gso.workflows.site.base_site_model import BaseSiteModel +from gso.utils.helpers import LAGMember + router = APIRouter(prefix="/imports", tags=["Imports"], dependencies=[Depends(opa_security_default)]) @@ -35,7 +31,7 @@ class ImportResponseModel(BaseModel): detail: str -class SiteImportModel(BaseModel): +class SiteImportModel(BaseSiteModel): """The required input for importing an existing :class:`gso.products.product_types.site`.""" site_name: str @@ -50,34 +46,6 @@ class SiteImportModel(BaseModel): site_ts_address: str customer: str - @validator("site_ts_address", allow_reuse=True) - def validate_ts_address(cls, site_ts_address: str) -> str: - """Validate the terminal server address.""" - validate_site_fields_is_unique("site_ts_address", site_ts_address) - validate_ipv4_or_ipv6(site_ts_address) - return site_ts_address - - @validator("site_country_code", allow_reuse=True) - def country_code_must_exist(cls, country_code: str) -> str: - """Validate the country code such that it exists.""" - validate_country_code(country_code) - return country_code - - @validator("site_internal_id", "site_bgp_community_id", allow_reuse=True) - def validate_unique_fields(cls, value: str, field: ModelField) -> str | int: - """Validate that the internal side ID and :term:`BGP` community IDs are unique.""" - return validate_site_fields_is_unique(field.name, value) - - @validator("site_name", allow_reuse=True) - def site_name_must_be_valid(cls, site_name: str) -> str: - """Validate the site name. - - The site name must consist of three uppercase letters, optionally followed by a single digit. - """ - validate_site_fields_is_unique("site_name", site_name) - validate_site_name(site_name) - return site_name - class RouterImportModel(BaseModel): """Required fields for importing an existing :class:`gso.product.product_types.router`."""