def isValidToken(authKey): """ Obtiene el currentUser desde el servicio de autentificación authKey: string El header Authorization enviado por el cliente return dict<property, value> CurrentUser """ if (not isinstance(authKey, str) or len(authKey) == 0): raise errors.InvalidAuth() headers = {"Authorization".encode("utf-8"): authKey.encode("utf-8")} conn = http.client.HTTPConnection( socket.gethostbyname(config.get_security_server_url()), config.get_security_server_port(), ) conn.request("GET", "/v1/users/current", {}, headers) response = conn.getresponse() if (response.status != 200): raise errors.InvalidAuth() result = json.body_to_dic(response.read().decode('utf-8')) if (len(result) == 0): raise errors.InvalidAuth() return result
def callback(ch, method, properties, body): event = json.body_to_dic(body.decode('utf-8')) if (len(validator.validateSchema(EVENT, event)) > 0): return if (event["type"] == "logout"): security.invalidateSession(event["message"])
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 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 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 callback(ch, method, properties, body): event = json.body_to_dic(body.decode('utf-8')) if (len(validator.validateSchema(EVENT_CALLBACK, event)) > 0): return if (event["type"] == "article-exist"): message = event["message"] if (len(validator.validateSchema(MSG_ARTICLE_EXIST, message)) > 0): return exchange = event["exchange"] queue = event["queue"] referenceId = message["referenceId"] articleId = message["articleId"] print( "RabbitMQ Catalog GET article-exist catalogId:%r , articleId:%r", referenceId, articleId) try: articleValidation.validateArticleExist(articleId) sendArticleValid(exchange, queue, referenceId, articleId, True) except Exception: sendArticleValid(exchange, queue, referenceId, articleId, False) if (event["type"] == "article-data"): message = event["message"] if (len(validator.validateSchema(MSG_ARTICLE_EXIST, message)) > 0): return exchange = event["exchange"] queue = event["queue"] referenceId = message["referenceId"] articleId = message["articleId"] print( "RabbitMQ Catalog GET article-data catalogId:%r , articleId:%r", referenceId, articleId) try: article = crud.getArticle(articleId) valid = ("enabled" in article and article["enabled"]) stock = article["stock"] price = article["price"] articleValidation.validateArticleExist(articleId) sendArticleData(exchange, queue, referenceId, articleId, valid, stock, price) except Exception: sendArticleData(exchange, queue, referenceId, articleId, False, 0, 0)
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 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 validateArticle(articleId, authKey): if (not isinstance(authKey, str) or len(authKey) == 0): raise errors.InvalidAuth() headers = {"Authorization".encode("utf-8"): authKey.encode("utf-8")} conn = http.client.HTTPConnection( socket.gethostbyname(config.get_article_server_url()), config.get_article_server_port(), ) conn.request("GET", "/v1/articles/{article_id}".format(article_id=articleId), {}, headers) response = conn.getresponse() if (response.status != 200): raise errors.InvalidRequest("Invalid article criteria") result = json.body_to_dic(response.read().decode('utf-8')) if (len(result) == 0): raise errors.InvalidRequest("Invalid search criteria") return result
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)