add campaign key to voter object

This commit is contained in:
nolan 2023-12-09 09:50:22 -08:00
parent 426390d242
commit dc4056c1ed
1 changed files with 12 additions and 15 deletions

View File

@ -33,7 +33,6 @@ class AFCMUniverseMapFile:
self.mosaic_head = {}
self.metadata = {}
self.mosaic_file_list = {}
self.voterset_key = None
self.files = []
@ -109,7 +108,7 @@ class AFCMUniverseMapFile:
return data
def read_mosaic_map_dict( self, voterset_key : str, map_dict : dict ):
def read_mosaic_map_dict( self, map_dict : dict ):
"""
read_mosaic_map_dict
"""
@ -120,7 +119,6 @@ class AFCMUniverseMapFile:
self.mosaic_head = map_dict.get('mosaic', {})
self.metadata = map_dict.get('metadata', {})
self.mosaic_file_list = map_dict.get('files', {})
self.voterset_key = voterset_key
return None
@ -198,15 +196,6 @@ class AFCMUniverseMapFile:
except Exception as ex:
raise Exception(f"universe_map_file.generate_mapped_file: Failed to get {self.optout_s3_bucket}/{errors_filename_s3_key}: {ex}") from ex
if "optout_s3_key" in self.metadata and self.metadata["optout_s3_key"] != None:
try:
file_data_stream = self.optout_s3_connection.get_object(self.optout_s3_bucket,
self.metadata["optout_s3_key"])
optout_numbers = json.load(codecs.getreader("utf-8")(file_data_stream))
self.error_numbers.update(optout_numbers)
except Exception as ex:
raise Exception(f"universe_map_file.generate_mapped_file: Failed to get {self.optout_s3_bucket}/{self.metadata['optout_s3_key']}: {ex}") from ex
# Loop the files from the map
for ufilename in self.mosaic_file_list:
self.process_file(ufilename)
@ -439,7 +428,7 @@ class AFCMUniverseMapFile:
write_final_file Writes the final CSV to S3
"""
# Set the length of the final file
# Set the count of final voters
self.metadata["total_rows"] = len(self.final_rows)
# Need to write the FINAL file
@ -463,6 +452,10 @@ class AFCMUniverseMapFile:
write_stats_file Writes the stats JSON to S3
"""
# Set the count of stat data
self.metadata["cleaned_count"] = self.stats['cleaned_count']["total"]
self.metadata["total_removed"] = self.stats['removed_count']["total"]
# Write the STATS file
stats_filename = "mosaic_stats.json"
s3_key = os.path.join(self.metadata.get("s3_key", ""), stats_filename)
@ -485,10 +478,13 @@ class AFCMUniverseMapFile:
}
def get_voter_object(self) -> dict:
def get_voter_object(self, voterset_key : str, campaign_key : str) -> dict:
"""
get_voter_object Get the voter to the API object
:param voterset_key: Voterset key of the voter
:param campaign_key: Campaign key of the voter
:return Dictionary object of the AF-VOTER
"""
@ -506,7 +502,8 @@ class AFCMUniverseMapFile:
"voter_id": voter_row['UID'],
"first_name": voter_row['FName'],
"last_name": voter_row['LName'],
"voterset_keys": [self.voterset_key],
"voterset_keys": [voterset_key],
"campaign_key": campaign_key,
"data_fields": data_fields_dict,
"cell_phone": voter_row['Cell_Phone']
}