Commit 4cf69e3a by Javier

Cadena de Registro y Rutas Absolutas

parent 6fdf07c0
......@@ -7,6 +7,9 @@ import mbilling.connector as mbc
import mbilling.exceptions as mbe
from mbilling.functions import MagnusCommandError
import mbilling.functions as mbf
from sqlalchemy.exc import OperationalError
from mbilling.db import session
description = """
Servicio API para la interacción con el Tarficador de Telefonía ☎️
......@@ -51,6 +54,7 @@ class Refill(str, Enum):
TRASPASO = 'Traspaso'
INICIAL = 'Inicial'
@app.exception_handler(MagnusCommandError)
def magnus_error_handler(request: Request, ex: MagnusCommandError):
return JSONResponse(
......@@ -71,6 +75,17 @@ def magnus_error_handler(request: Request, ex: mbe.UserNotFound):
)
@app.exception_handler(OperationalError)
def magnus_error_handler(request: Request, ex: OperationalError):
session.rollback()
return JSONResponse(
status_code=400,
content={
"detail": f'Erro de Conexión con SQL, pruebe de nuevo.',
}
)
def get_user_response_model(number: str):
"""Devuelve tupla Usuario / Modelo Respuesta
"""
......@@ -154,7 +169,6 @@ def add_account_sip(sip: models.CreateSipAccount, account_name: str = Query(...,
raise HTTPException(status_code=409, detail=str(e))
@app.post('/v2/account/{account_name}/balance', name='Añade saldo a una cuenta SIP', description='Realiza una recarga en nombre del cliente.', tags=['Account'])
def add_balance(account_name: str = Query(..., regex=r'[89][1-9]\d{7}', name='Número', description='Cuenta SIP a recargar'),
quantity: float = Query(
......@@ -193,6 +207,7 @@ def add_balance(account_name: str = Query(..., regex=r'[89][1-9]\d{7}', name='N
raise HTTPException(
status_code=400, detail="La cantidad debe ser mayor que 0.0€")
@app.get('/v2/account/{account_name}/sip', response_model=list[models.SipAccount], name="Obtener Cuentas SIP",
description="Devuelve todas la cuentas SIP asignadas a la cuenta de Facturación", tags=["Account"], status_code=200)
def get_account_sip(account_name: str = Query(..., regex=models.PHONE_REGEX, name='Número', description='Cuenta SIP a recargar')):
......
......@@ -19,14 +19,13 @@ sql_server_hostname = "192.168.2.200"
sql_server_database = "bdd_wifi"
sql_server_username = "api-mbilling"
sql_server_password = "mbillingmbilling"
sql_server_driver = 'ODBC Driver 17 for SQL Server' if os.name == 'nt' else 'FreeTDS'
sql_server_driver = '{ODBC Driver 17 for SQL Server}' if os.name == 'nt' else '{FreeTDS}'
# Cadena de Conexión
SQL_SERVER_CNX_STRING = "DRIVER={driver};SERVER={server};\
DATABASE={database};UID={username};PWD={password};TDS_Version=7.0;".format(
driver=sql_server_driver, server=sql_server_hostname,
database=sql_server_database, username=sql_server_username,
password=sql_server_password)
DATABASE={database};UID={username};PWD={password};TDS_Version=7.0;PORT=1433;".format(
driver=sql_server_driver, server=sql_server_hostname, database=sql_server_database,
username=sql_server_username,password=sql_server_password)
# ID en Magnus de Tarifa Plana
TARIFA_PLANA_ID = 4
......
......@@ -8,7 +8,7 @@ from sqlalchemy.ext.automap import automap_base
# CONFIGURACIÓN
# Path de MBILLING
mbapi_path = pathlib.Path(pathlib.Path().resolve(), 'mbilling')
mbapi_path = pathlib.Path('/home/rentel/scrapper-portabilidad/mbilling')
# Petición Correcta
succesful = re.compile(r'^\[20\d\]')
......@@ -22,5 +22,5 @@ engine = create_engine(
f"mariadb+pymysql://{values['DB_USER']}:{values['DB_PASSWORD']}@{values['DB_HOST']}/{values['DB_NAME']}?charset=utf8mb4"
)
Base.prepare(engine, reflect=True)
Session = sessionmaker(bind=engine, transactional=False)
Session = sessionmaker(bind=engine)
session = Session()
......@@ -9,7 +9,7 @@ from datetime import datetime
from mbilling.db import session
# Path de MBILLING
mbapi_path = pathlib.Path(pathlib.Path().resolve(), 'mbilling')
mbapi_path = pathlib.Path('/home/rentel/scrapper-portabilidad/mbilling')
# Petición Correcta
succesful = re.compile(r'^\[20\d\]')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment