Commit 3b15017c by Javier

Nueva API

parent 5bb24443
......@@ -79,4 +79,4 @@ def account_data(callerid: str = None, account : str = None) -> dict:
return dict(zip(headers, data + get_dids_account(data[0]))) if data else None
if __name__ == '__main__':
print(account_data('956387046'))
print(account_data('956377729'))
......@@ -108,9 +108,10 @@ def add_account_sip(sip: models.CreateSipAccount, account_name: str = Query(...,
@app.get('/v2/account/{account_name}/balance')
def get_account_balance(account_name : str, last_movements : int = 10):
def get_account_balance(account_name: str, last_movements: int = 10):
pass
@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')):
......@@ -126,12 +127,25 @@ def get_account_sip(account_name: str = Query(..., regex=models.PHONE_REGEX, nam
@app.get('/v2/sip/{caller_id}', response_model=models.SipAccount, name="Obtiene una Cuenta SIP", description="Devuelve los datos de conexión de la cuenta.",
tags=["SIP"], status_code=200)
def add_account_sip(caller_id: str = Query(..., regex=models.PHONE_REGEX, name='Número', description='Cuenta SIP a consultar'),):
try:
sip, user = mbc.get_sip_account(caller_id)
return models.SipAccount.generate_from_automap(sip, user.username)
except mbe.UserNotFound as e:
raise HTTPException(status_code=404, detail=str(e))
except mbe.SipNotFound as e:
raise HTTPException(status_code=404, detail=str(e))
@app.post('/v2/sip/{caller_id}/transfer', response_model=models.SipAccount, name="Transfiere la Cuenta", description="Modifica al Propietario de la Cuenta",
tags=["SIP"], status_code=200)
def add_account_sip(account : models.TransferSip, caller_id: str = Query(..., regex=models.PHONE_REGEX, name='Número', description='Cuenta SIP a consultar')):
try:
sip, user = mbc.get_sip_account(caller_id)
return models.SipAccount.generate_from_automap(
sip, user.username
)
except mbe.UserNotFound as e:
raise HTTPException(status_code=404, detail=str(e))
......
......@@ -88,9 +88,8 @@ def get_sip_account(number: str) -> Tuple[Sip, User]:
models.SipAccount: Cuenta SIP Asociada
"""
sip = session.query(Sip).filter_by(name=number).first()
user = session.query(User).filter_by(id=sip.id_user).first()
if sip:
return sip, user
return sip, session.query(User).filter_by(id=sip.id_user).first()
else:
raise mbe.SipNotFound()
......@@ -119,12 +118,11 @@ def find_user_account(number: str) -> User:
Returns:
User: Cuenta de Facturación.
"""
sip, user = get_sip_account(number)
if user:
try:
sip, user = get_sip_account(number)
return user
else:
raise mbe.UserNotFound()
except mbe.SipNotFound:
return None
def get_user(number: str) -> models.User:
......@@ -285,7 +283,7 @@ def update_did_owner(did: Did, sip: Sip):
def create_or_update_did(number: str, user: User, sip: Sip = None):
if not sip:
sip = get_sip_account(number)
sip, owner = get_sip_account(number)
if not sip:
raise mbe.SipRegisteredError()
......@@ -328,3 +326,6 @@ def create_sip(username: str, create_sip: models.CreateSipAccount) -> models.Sip
raise mbe.SipRegisteredError(
'La cuenta SIP está asignada a otro usuario.')
def transfer_sip(sip : Sip, user : User):
pass
......@@ -12,7 +12,7 @@ class NotFound(Exception):
if not message:
message = 'No se ha localiado ningún elemento con la referencia indicada.'
super().__init__(message=message)
super().__init__(message)
class SipNotFound(NotFound):
......@@ -21,7 +21,7 @@ class SipNotFound(NotFound):
if not message:
message = 'No existe ninguna cuenta SIP con el Caller ID indicado.'
super().__init__(message=message)
super().__init__(message)
class UserNotFound(NotFound):
......@@ -30,7 +30,7 @@ class UserNotFound(NotFound):
if not message:
message = 'No existe ninguna cuenta de facturación con el número indicado.'
super().__init__(message=message)
super().__init__(message)
class DidNotFound(NotFound):
......@@ -39,4 +39,4 @@ class DidNotFound(NotFound):
if not message:
message = 'No existe ninguna cuenta DID con el Caller ID indicado.'
super().__init__(message=message)
super().__init__(message)
......@@ -204,6 +204,13 @@ class SipAccount(BaseModel):
)
class TransferSip(BaseModel):
account: str = Body(
..., title="Cuenta", description="Nuevo propietario de cuenta SIP"
)
class CreateSipAccount(BaseModel):
cid: str = Body(
......
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