Pues aun se puede mejorar pero de momento vive 😃
el archivo models.py
# RETO
class Reglas(EndpointsModel):
# Crear propiedades
rango_minimo = ndb.IntegerProperty()
valor_aprobado = ndb.IntegerProperty()
@staticmethod
def insertar_regla(rango_minimo, valor_aprobado):
# TODO: Insertar regla
return Reglas(
rango_minimo=rango_minimo,
valor_aprobado=valor_aprobado
).put().get()
@staticmethod
def listar_reglas():
# TODO: Listar Reglas
# lista_reglas = [
# {
# 'rango_minimo': 800001,
# 'valor_aprobado': 5000000
# },
# {
# 'rango_minimo': 1000001,
# 'valor_aprobado': 20000000
# },
# {
# 'rango_minimo': 4000000,
# 'valor_aprobado': 50000000
# }
# ]
reglas = Reglas.query().fetch()
return reglas
y el archivo views.py
@app.route('/solicitar', methods=['GET', 'POST'])
def solicitar_prestamo():
if request.method == "POST":
json_request = request.get_json(force=True)
logging.info(json_request)
response = {}
status = 'RECHAZADO'
valor_aprobado = 0
lista_reglas = Reglas.listar_reglas()
salario = int(json_request['salario'])
for regla in lista_reglas:
valtmp = int(regla.rango_minimo)
if salario > valtmp:
status = 'APROBADO'
valor_aprobado = int(regla.valor_aprobado)
solicitud = Solicitud.registrar_solicitud(
id_usuario=int(json_request['id']),
salario=salario,
status=status,
nit=int(json_request['nit']),
valor_aprobado=valor_aprobado
)
response['status'] = '200'
response['status_solicitud'] = status
response['valor_aprobado'] = valor_aprobado
return json.dumps(response)
return "error"
@app.route('/insertar_reglas')
def insertar_reglas():
"""
Regla 1: Si el salario es menor a 800000 el credito es RECHAZADO
Regla 2: Si el salario es mayor a 800000 y menor a 1000000 es aprobado por 5000000
Regla 3: Si el salario es mayor a 1000000 y menor a 4000000 es aprobado por 2000000
Regla 4: Si el salario es mayor a 4000000 es aprobado por 50000000
:return:
"""
lista_reglas = [
{
'rango_minimo': 800001,
'valor_aprobado': 5000000
},
{
'rango_minimo': 1000001,
'valor_aprobado': 20000000
},
{
'rango_minimo': 4000000,
'valor_aprobado': 50000000
}
]
for regla in lista_reglas:
insercion = Reglas.insertar_regla(**regla)
return "Reglas Insertadas"
Saludos!
Los aportes, preguntas y respuestas son vitales para aprender en comunidad. RegÃstrate o inicia sesión para participar.