Exemplo n.º 1
0
def delete_rule_info(appname, rule_ids):
    data = {"success": [], "failed": []}
    for rule_id in rule_ids:
        try:
            rule_id = int(rule_id) if not isinstance(rule_id, int) else rule_id
        except:
            _LOGGER.error("id:%s type error", rule_id)
            continue

        cond = {"_id": rule_id}
        rule = Rule.find_one(appname, cond, None)
        if not rule:
            _LOGGER.error("rule id %s is not exist", rule_id)
            continue
        refer_cond = {"target_id": int(rule_id), "target_field": "rule"}
        refer_rule = ReferInfo.find_one_refered_info(
            appname, refer_cond, None)
        if refer_rule:
            _LOGGER.info("rule id %s is refer", rule_id)
            refer_info = {"id": rule_id}
            refer_info["refered_info"] = refer_rule["refered_info"]
            data["failed"].append(refer_info)
        else:
            Rule.remove(appname, cond)
            data["success"].append({"id": rule_id})

    if data["failed"]:
        return json_response_error(DATA_RELETED_BY_OTHER, data)
    else:
        return json_response_ok(data, msg="delete successfully")
Exemplo n.º 2
0
def info_del(appname, modelName, ids):
    MODELNAME = get_model_cls(modelName)
    data = {"success": [], "failed": []}
    for id in ids:
        try:
            id = int(id) if not isinstance(id, int) else id
        except:
            _LOGGER.info("id:%s type error", id)
            continue
        cond = {"_id": id}
        info = MODELNAME.find_one(appname, cond, None)
        if not info:
            _LOGGER.info("id %s is not exist", id)
            continue
        refer_cond = {}
        refer_cond[modelName] = id
        refer_rule = Rule.find(appname, refer_cond, toarray=True)
        if refer_rule:
                _LOGGER.info("id %s is refered", id)
                refer_info = {"id": id, "refered_info": []}
                for item in refer_rule:
                    temp_dict = {"modelName": "rule"}
                    temp_dict["id"] = item.get("_id")
                    refer_info["refered_info"].append(temp_dict)
                data["failed"].append(refer_info)
        else:
            MODELNAME.remove(appname, cond)
            data["success"].append({"id": id})

    if data["failed"]:
        return json_response_error(DATA_RELETED_BY_OTHER, data)
    else:
        return json_response_ok(data, msg="delete successfully")