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"}