importloggingfrombrocolib_utils.utils.data_studioimportDataStudiodefupdate_exposures(data:dict):forelementindata["exposures"]:exposure_title=element["name"]exposure_meta_dict=element["meta"]asset_id=exposure_meta_dict.get("asset_id")grants_dict=exposure_meta_dict.get("grants")ifgrants_dict:client=DataStudio()permissions=client.get_permissions(asset_id=asset_id)ifpermissions["response"]!=200:logging.error(permissions["response"])elifpermissions["response"]["permissions"]!=grants_dict:permissions_updated=client.update_permissions(asset_id=asset_id,permission_dict={"permissions":grants_dict})ifpermissions_updated["response"]!=200:logging.error(permissions_updated["response"])else:logging.info(f"Permissions for {exposure_title} have been updated successfully !")else:logging.info(f"No changes in permissions detected for {exposure_title}")logging.info('DONE')
Functions
update_exposures
defupdate_exposures(data:dict)
View Source
defupdate_exposures(data:dict):
forelementindata["exposures"]:
exposure_title=element["name"]
exposure_meta_dict=element["meta"]
asset_id=exposure_meta_dict.get("asset_id")grants_dict=exposure_meta_dict.get("grants")ifgrants_dict:
client=DataStudio()permissions=client.get_permissions(asset_id=asset_id)ifpermissions["response"]!=200:
logging.error(permissions["response"])elifpermissions["response"]["permissions"]!=grants_dict:
permissions_updated=client.update_permissions(asset_id=asset_id,
permission_dict={"permissions":grants_dict}
)ifpermissions_updated["response"]!=200:
logging.error(permissions_updated["response"])else:
logging.info(f"Permissions for {exposure_title} have been updated successfully !")else:
logging.info(f"No changes in permissions detected for {exposure_title}")logging.info('DONE')