def process_create_request()

in source/lambda/quicksight-custom-resources/lambda_function.py [0:0]


def process_create_request(event):
    request_type = event["RequestType"]  # "Create"
    resource_properties = get_resource_propertices(event)
    resource = resource_properties["Resource"]
    qs_api = QuicksightApi(resource_properties)

    try:
        if resource == "all":
            qs_api.create_all_resources()
        elif resource == "datasource":
            qs_api.create_data_source()
        elif resource == "dataset":
            qs_api.create_data_sets()
        elif resource == "analysis":
            qs_api.create_analysis()
        elif resource == "dashboard":
            qs_api.create_dashboard()
        else:
            logger.error(f"Not handling request resource:{resource}, request_type:{request_type}")
            raise ValueError(f"Received unsupported request request_type:{request_type}, resource:{resource}")
        if resource in ["all", "analysis", "dashboard"]:
            analysis_url = qs_api.quicksight_application.get_analysis().url
            dashboard_url = qs_api.quicksight_application.get_dashboard().url
            helper.Data.update({"analysis_url": analysis_url, "dashboard_url": dashboard_url})
    except Exception as error:
        # Do logging in addition to crhelper exception handeling
        log_exception(error)
        qs_api.delete_all_resources()
        raise (error)

    logger.info(f"finished with request_type:{request_type} resource:{resource}")
    return None