def post(self): args = parser.parse_args() args["id"] = uuid_prefix("p") user = g.user_info["username"] product = args db = DB() status, result = db.select( "product", "where data -> '$.name'='%s'" % args["name"]) if status is True: if len(result) == 0: insert_status, insert_result = db.insert( "product", json.dumps(product, ensure_ascii=False)) db.close_mysql() if insert_status is not True: logger.error("Add product error: %s" % insert_result) return {"status": False, "message": insert_result}, 500 audit_log(user, args["id"], "", "product", "add") # 更新Rsync配置 if args["file_server"] == "rsync": rsync_config() return {"status": True, "message": ""}, 201 else: db.close_mysql() return { "status": False, "message": "The product name already exists" }, 200 else: db.close_mysql() logger.error("Select product name error: %s" % result) return {"status": False, "message": result}, 500
def delete(self, product_id): user = g.user_info["username"] db = DB() status, result = db.delete_by_id("product", product_id) db.close_mysql() if status is not True: logger.error("Delete product error: %s" % result) return {"status": False, "message": result}, 500 if result is 0: return { "status": False, "message": "%s does not exist" % product_id }, 404 audit_log(user, product_id, product_id, "product", "delete") info = update_user_privilege("product", product_id) if info["status"] is False: return {"status": False, "message": info["message"]}, 500 # 更新Rsync配置 rsync_config() return {"status": True, "message": ""}, 200
def put(self, product_id): user = g.user_info["username"] args = parser.parse_args() args["id"] = product_id product = args db = DB() # 判断是否存在 select_status, select_result = db.select_by_id("product", product_id) if select_status is not True: db.close_mysql() logger.error("Modify product error: %s" % select_result) return {"status": False, "message": select_result}, 500 if not select_result: db.close_mysql() return { "status": False, "message": "%s does not exist" % product_id }, 404 # 判断名字是否重复 status, result = db.select( "product", "where data -> '$.name'='%s'" % args["name"]) if status is True: if result: if product_id != result[0].get("id"): db.close_mysql() return { "status": False, "message": "The product name already exists" }, 200 status, result = db.update_by_id( "product", json.dumps(product, ensure_ascii=False), product_id) db.close_mysql() if status is not True: logger.error("Modify product error: %s" % result) return {"status": False, "message": result}, 500 audit_log(user, args["id"], product_id, "product", "edit") # 更新Rsync配置 if args["file_server"] == "rsync": rsync_config() return {"status": True, "message": ""}, 200