def create_export_config()

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


def create_export_config():
    
    json_request = request.get_json(force=True) 
    print('json request: ', json_request)
    
    status, response, tag_creator_sa = do_authentication(request.headers, json_request, ENABLE_AUTH)
        
    if status == False:
        return jsonify(response), 400
       
    if 'source_projects' in json_request:
        source_projects = json_request['source_projects']
    else:
        source_projects = ''
    
    if 'source_folder' in json_request:
        source_folder = json_request['source_folder']
    else:
        source_folder = ''
    
    if source_projects == '' and source_folder == '':
        print("The export config requires either a source_projects or source_folder parameter. Please add the parameter to the json object.")
        resp = jsonify(success=False)
        return resp
    
    if 'source_region' in json_request:
        source_region = json_request['source_region']
    else:
        print("The export config requires either a source_region parameter. Please add the parameter to the json object.")
        resp = jsonify(success=False)
        return resp
              
    if 'target_project' in json_request:
        target_project = json_request['target_project']
    else:
        print("The export config requires a target_project parameter. Please add the parameter to the json object.")
        resp = jsonify(success=False)
        return resp

    if 'target_dataset' in json_request:
        target_dataset = json_request['target_dataset']
    else:
        print("The export config requires a target_dataset parameter. Please add the parameter to the json object.")
        resp = jsonify(success=False)
        return resp
    
    if 'target_region' in json_request:
        target_region = json_request['target_region']
    else:
        print("The export config requires a target_region parameter. Please add the parameter to the json object.")
        resp = jsonify(success=False)
        return resp
      
    if 'refresh_mode' in json_request:
        refresh_mode = json_request['refresh_mode']
    else:
        print("The export config requires a refresh_mode parameter. Please add the parameter to the json object.")
        resp = jsonify(success=False)
        return resp  
    
    if refresh_mode.upper() == 'AUTO':
        
        if 'refresh_frequency' in json_request:
            refresh_frequency = json_request['refresh_frequency']
        else:
            print("The export config requires a refresh_frequency parameter when refresh_mode = AUTO. Please add the parameter to the json object.")
            resp = jsonify(success=False)
            return resp
        
        if 'refresh_unit' in json_request:
            refresh_unit = json_request['refresh_unit']
        else:
            print("The export config requires a refresh_unit parameter when refresh_mode = AUTO. Please add the parameter to the json object.")
            resp = jsonify(success=False)
            return resp
    else:
        refresh_frequency = None
        refresh_unit = None 
    
    
    if 'write_option' in json_request:
        write_option = json_request['write_option']
    else:
        print("The export config requires a write_option parameter. Please add the parameter to the json object.")
        resp = jsonify(success=False)
        return resp
        
    config_uuid = store.write_tag_export_config(tag_creator_sa, source_projects, source_folder, source_region, \
                                              target_project, target_dataset, target_region, write_option, \
                                              refresh_mode, refresh_frequency, refresh_unit)                                                      
    
    return jsonify(config_uuid=config_uuid, config_type='TAG_EXPORT')