Files
SMANAGE/_api_backup/TempLateAPI/SVE/API/Write.api
T
2026-06-16 11:55:14 +08:00

57 lines
2.2 KiB
Plaintext

from PDAPI import *
__metadata__ = {
"methods": ["POST"],
"blueprint": "SVE",
"permission": 0.0,
"attributes": [],
"limit": "1 per second",
"json": [
{"Name": "sveId", "Type": "str", "MaxLen": 14},
{"Name": "vulnTitle", "Type": "str", "MaxLen": 256},
{"Name": "vulnStatus", "Type": "str", "MaxLen": 102400},
{"Name": "vulnDescription", "Type": "str", "MaxLen": 102400},
{"Name": "products", "Type": "str", "MaxLen": 102400},
{"Name": "cvss", "Type": "str", "MaxLen": 102400},
{"Name": "solutions", "Type": "str", "MaxLen": 102400},
{"Name": "references", "Type": "str", "MaxLen": 102400},
{"Name": "relatedSves", "Type": "str", "MaxLen": 102400}
]
}
def HandleRequest():
SVE: SVEBase
sveId = flask.request.json["sveId"]
vulnTitle = flask.request.json["vulnTitle"]
vulnStatus = flask.request.json["vulnStatus"]
vulnDescription = flask.request.json["vulnDescription"]
products = flask.request.json["products"]
cvss = flask.request.json["cvss"]
solutions = flask.request.json["solutions"]
references = flask.request.json["references"]
relatedSves = flask.request.json["relatedSves"]
if not (sveId := PreSVE(sveId)): return flask.jsonify({"error": "sveId not format", "code": 1})
if not sveId.isdigit() or len(sveId) % 2 != 0: return flask.jsonify({"error": "sveId not %2 number", "code": 1})
if not (SVE := SVEBase.query.filter(SVEBase.SVEID == Get16toBytes(sveId)).first()):
SVE = SVEBase()
SVE.SVEID = Get16toBytes(sveId)
SVE.SVECreateTime = TimeFormatInt()
SVE.SVEName = vulnTitle
SVE.SVEDescription = vulnDescription
SVE.SVELastModified = TimeFormatInt()
SVE.SVEVulnStatus = vulnStatus
SVE.SVEProducts = products
SVE.SVECvss = cvss
SVE.SVESolutions = solutions
SVE.SVEReferences = references
SVE.SVERelatedSves = relatedSves
try:
db.session.add(SVE)
db.session.commit()
return {"code": 0, "msg": "Success"}
except:
print(traceback.format_exc())
db.session.rollback()
return {"code": 1, "msg": "Failed Commit SQL"}