def addPrice(articleId): print("Petición para agregar precio") try: security.validateAdminRole( flask.request.headers.get("Authorization")) token = flask.request.headers.get("Authorization") security.validateArticle(articleId, token) params = json.body_to_dic(flask.request.data) # print(params) responses = [] # print("price", price) pri = restValidator.validateAddPriceParams(params) # print("pri",pri) result = crud.addPrice(pri) responses.append(result.copy()) print(responses) # return json.dic_to_json(result) return json.dic_to_json(result) except Exception as err: return errors.handleError(err)
def updateStock(articleId): try: security.validateAdminRole(flask.request.headers.get("Authorization")) params = json.body_to_dic(flask.request.data) params = restValidator.validateAddStockParams(params) base = "http://127.0.0.1:3002/v1/articles/" consumir = get(base+articleId).json() if consumir["_id"]: #result = crud.addStock(params) articleId = consumir["_id"] nombreProducto = consumir["name"] result = crud.updateStock(articleId,nombreProducto,params) return json.dic_to_json({ "articleId": articleId, #"cantStock": params["cantStock"], "resultado" : result }) else: error = "el _id no pertenece a un articulo del catalogo" return error except Exception as err: return errors.handleError(err)
def handleInvalidArgument(err): """ Argumento con errores. err: InvalidArgument result json error a enviar al cliente """ return json.dic_to_json({"path": err.path, "message": err.error}), 400
def handleUnauthorized(err): """ Usuario no autorizado. err: InvalidAuth result json error a enviar al cliente """ return json.dic_to_json({"error": "Unauthorized"}), 401
def handleInvalidAccessLevel(err): """ Usuario no autorizado. err: InvalidAuth result json error a enviar al cliente """ return json.dic_to_json({"error": "Insufficient access level"}), 401
def handleUnknown(err): """ Cualquier otro error. err: Exception result json error a enviar al cliente """ return json.dic_to_json({"error": "Unknown error"}), 500
def handleInvalidRequest(err): """ Request con errores. err: InvalidRequest result json error a enviar al cliente """ return json.dic_to_json({"error": err.error}), 400
def getDiscount(discountCode): try: print("articleID "+discountCode) return json.dic_to_json(crud.getDiscount(discountCode)) except Exception as err: return errors.handleError(err)
def getPrice(articleId): print("ejecuta") try: return json.dic_to_json(crud.getPrice(articleId)) except Exception as err: return errors.handleError(err)
def addPrice(): print("Petición para agregar precio") try: security.validateAdminRole( flask.request.headers.get("Authorization")) token = flask.request.headers.get("Authorization") params = json.body_to_dic(flask.request.data) # print(params) responses = [] for price in params: # print("price", price) pri = restValidator.validateAddPriceParams(price) # print("pri",pri) result = crud.addPrice(pri) # print("result: ",result) # resp = {} # # resp['fechaDesde'] = result['fechaDesde'] # resp['price'] = result['price'] # resp['article_id'] = result['article_id'] responses.append(result.copy()) print(responses) # return json.dic_to_json(result) return json.dic_to_json(responses) except Exception as err: return errors.handleError(err)
def getFunds(user_id): try: security.validateAdminRole( flask.request.headers.get("Authorization")) result = find.getFundsWallet(user_id) return json.dic_to_json({"user_id": user_id, "balance": result}) except Exception as err: return errors.handleError(err)
def getPriceByDate(articleId): print("ejecuta") try: priceDate = flask.request.args.get('fecha') return json.dic_to_json(crud.getPriceByDate(articleId, priceDate)) # return "funciono" except Exception as err: return errors.handleError(err)
def getDiscountByDate(articleId): print("ejecuta") try: discountDate = flask.request.args.get('fecha') # print("llego ", discountDate) return json.dic_to_json(crud.getDiscountByDate(articleId,discountDate)) # return "funciono" except Exception as err: return errors.handleError(err)
def sendArticleData(exchange, queue, referenceId, articleId, valid, stock, price): """ Envía eventos al Cart article-data : Es una validación solicitada por Cart para validar si el articulo puede incluirse en el cart @api {direct} cart/article-data Validación de Articulos @apiGroup RabbitMQ POST @apiDescription Enviá de mensajes article-exist desde cart. Valida articulos @apiSuccessExample {json} Mensaje { "type": "article-exist", "message" : { "referenceId": "{referenceId}", "articleId": "{articleId}", "valid": True|False, "stock": {stock}, "price": {price} } } """ connection = pika.BlockingConnection( pika.ConnectionParameters(host=config.get_rabbit_server_url())) channel = connection.channel() channel.exchange_declare(exchange=exchange, exchange_type='direct') channel.queue_declare(queue=queue) message = { "type": "article-data", "message": { "referenceId": referenceId, "articleId": articleId, "valid": valid, "stock": stock, "price": price, } } channel.basic_publish(exchange=exchange, routing_key=queue, body=json.dic_to_json(message)) connection.close() print( "RabbitMQ Cart POST article-data catalogId:%r , articleId:%r , valid:%r", referenceId, articleId, valid)
def handleMultipleArgumentException(err): """ Multiples argumentos con errores. err: MultipleArgumentException result json error a enviar al cliente """ return json.dic_to_json({ "messages": [{ "path": k, "message": v } for k, v in err.errors.items()] }), 400
def getHistory(user_id): try: security.validateAdminRole( flask.request.headers.get("Authorization")) params = json.body_to_dic(flask.request.data) result = find.getHistoryWallet(params, user_id) return json.dic_to_json(result) except Exception as err: return errors.handleError(err)
def sendFunds(user_id): try: security.validateAdminRole( flask.request.headers.get("Authorization")) params = json.body_to_dic(flask.request.data) result = crud.addSend(params, user_id) return json.dic_to_json(result) except Exception as err: return errors.handleError(err)
def updateArticle(articleId): try: security.validateAdminRole(flask.request.headers.get("Authorization")) params = json.body_to_dic(flask.request.data) params = restValidator.validateEditArticleParams(articleId, params) result = crud.updateArticle(articleId, params) return json.dic_to_json(result) except Exception as err: return errors.handleError(err)
def sendNewDiscount(exchange, queue, type, Discounts): # print("LLAMA A LA FUNCION") connection = pika.BlockingConnection( pika.ConnectionParameters(host=config.get_rabbit_server_url())) channel = connection.channel() channel.exchange_declare(exchange=exchange, exchange_type='fanout') channel.queue_declare(queue=queue) message = {"type": type, "message": Discounts} channel.basic_publish(exchange=exchange, routing_key=queue, body=json.dic_to_json(message)) # print("llega") print(" [x] Sent %r" % message) connection.close()
def updateDiscount(discountCode): try: security.validateAdminRole(flask.request.headers.get("Authorization")) token = flask.request.headers.get("Authorization") # print("now "+ datetime.datetime.utcnow()) print("articleID "+discountCode) params = json.body_to_dic(flask.request.data) params = restValidator.validateEditDiscountParams(discountCode, params) result = crud.updateDiscount(discountCode, params) return json.dic_to_json(result) except Exception as err: print("error") return errors.handleError(err)
def addDiscount(articleId): print("Petición para agregar descuento") try: security.validateAdminRole(flask.request.headers.get("Authorization")) token = flask.request.headers.get("Authorization") security.validateArticle(articleId, token) params = json.body_to_dic(flask.request.data) responses = [] dis = restValidator.validateAddPriceParams(params) result = crud.addDiscount(dis) responses.append(result.copy()) # return "Hola para el post con el token: "+token return json.dic_to_json(result) except Exception as err: return errors.handleError(err)
def updatePrice(articleId): try: security.validateAdminRole( flask.request.headers.get("Authorization")) print('entro') token = flask.request.headers.get("Authorization") security.validateArticle(articleId, token) # print("now "+ datetime.datetime.utcnow()) print("articleID " + articleId) params = json.body_to_dic(flask.request.data) params = restValidator.validateEditPriceParams(articleId, params) result = crud.updatePrice(articleId, params) return json.dic_to_json(result) except Exception as err: print("error") return errors.handleError(err)
def getDiscountByArticle(articleId): try: return json.dic_to_json(crud.getDiscountByArticle(articleId)) except Exception as err: return errors.handleError(err)
def getStock(articleId): try: return json.dic_to_json(crud.getStock(articleId)) except Exception as err: return errors.handleError(err)
def searchArticles(criteria): try: return json.dic_to_json(find.searchArticles(criteria)) except Exception as err: return errors.handleError(err)