def generate()

in 5-app-infra/3-artifact-publish/docker/cdmc/report_engine/main.py [0:0]


def generate():

    projectNumber=''

    if(request.args.get('orgId')): orgId = request.args.get('orgId')
    else: return Response ("orgId parameter not set", status=400)

    if(request.args.get('projectId')): projectId = request.args.get('projectId')
    else: return Response ("projectId parameter not set", status=400)

    if(request.args.get('topicProjectId')): topicProjectId = request.args.get('topicProjectId')
    else: return Response ("topicProjectId parameter not set", status=400)

    if(request.args.get('topic')): topic = request.args.get('topic')
    else: return Response ("topic parameter not set", status=400)

    if(request.args.get('projectNumber')): projectNumber = request.args.get('projectNumber')
    else: 
        if(request.args.get('controls').find("14")>-1):return Response ("projectNumber parameter not set for Control 14", status=400)
        else: projectNumber = ""

    if(request.args.get('assetsScope')): 
        if request.args.get('assetsScope').upper()=="FALSE": assetsScope= False
        else: assetsScope = True
    else: assetsScope = True

    if(request.args.get('controls')): controls = request.args.get('controls')
    else: controls="all"

    uuid_str = str(uuid.uuid4())

    report_metadata = {"uuid":uuid_str,"Controls":controls}

    generateReport(orgId,projectId,topicProjectId,topic,report_metadata,projectNumber,assetsScope, controls)
    return Response({"uuid":uuid_str,
                     "status":"RUNNING",
                     "organization_id": orgId,
                     "project_id":projectId,
                     "controls": controls,
                     "result_project":topicProjectId, 
                     "result_topic":topic}, 
                     status=200)