@@ -5,7 +5,8 @@ from typing import Optional, Tuple
...
@@ -5,7 +5,8 @@ from typing import Optional, Tuple
frompydanticimportBaseModel
frompydanticimportBaseModel
importmbilling.functions
importmbilling.functions
importmbilling.modelsasmodels
importmbilling.connectorasmbc
description="""
description="""
Servicio API para la interacción con el Tarficador de Telefonía ☎️
Servicio API para la interacción con el Tarficador de Telefonía ☎️
...
@@ -34,181 +35,11 @@ app = FastAPI(
...
@@ -34,181 +35,11 @@ app = FastAPI(
)
)
classRate(str,Enum):
@app.get('/account/{account_name}',response_model=models.User,name="Obtener Cuenta",description="Obtiene la información de una Cuenta de Facturación",tags=['Account'])
ESTANDAR="Estandar"
EMPRESAS="Empresas"
PLANA_1000="Plana1000"
PLANA_2000="Plana2000"
PLANA_EUROPA_1000="PlanaEuropa1000"
classTax(str,Enum):
GENERAL='General'
EXENTA='Exento'
classRefill(str,Enum):
AUTOMATICA='Automatica'
LIQUIDACION='Liquidacion'
MANUAL='Manual'
TRASPASO='Traspaso'
INICIAL='Inicial'
classPeerDetails(BaseModel):
username:str=Body(
...,title='username',description='Nombre de Usuario'
)
secret:str=Body(
...,title='Secret',description='Contraseña'
)
fromuser:str=Body(
...,title='fromuser',description='Usuario SIP'
)
careinvite:bool=Body(
default=False,title='CareInvite',description='Comportamiento Invite, por defecto False.'
...,regex=r'[89][1-9]\d{7}',example='856135158',title='Número',description='Identificador de entrada y salidas de Llamadas'
)
name:str=Body(
...,example='Rentel',title='Nombre/Den. Comercial',description='Nombre del titular o Denominación Comercial de la empresa.',max_length=64
)
surname:str=Body(
...,example='Rentel Wifi SL',title='Apellidos/Den. Fiscal',description='Apellidos o Denominación Comercial de la empresa.',max_length=64
)
rate:Rate=Body(
default=Rate.ESTANDAR,title='Tarifa',description='Plan de Precios de la Línea'
)
balance:float=Body(
default=0.0,title='Saldo',description='Balance del Cliente'
)
sip_accounts:list[SipAccount]=Body(
...,title='Cuentas SIP',description='Números Asociados a la Cuenta de Facturación'
)
@app.get('/account/{account_name}',response_model=Account,name="Obtener Cuenta",description="Obtiene la información de una Cuenta de Facturación",tags=['Account'])
defget_account(account_name:str=Query(...,regex=r'[89][1-9]\d{7}',name='Número',description='Cuenta SIP a recargar')):
defget_account(account_name:str=Query(...,regex=r'[89][1-9]\d{7}',name='Número',description='Cuenta SIP a recargar')):