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.mosaic_head = {}
self.metadata = {} self.metadata = {}
self.mosaic_file_list = {} self.mosaic_file_list = {}
self.voterset_key = None
self.files = [] self.files = []
@ -109,7 +108,7 @@ class AFCMUniverseMapFile:
return data 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 read_mosaic_map_dict
""" """
@ -120,7 +119,6 @@ class AFCMUniverseMapFile:
self.mosaic_head = map_dict.get('mosaic', {}) self.mosaic_head = map_dict.get('mosaic', {})
self.metadata = map_dict.get('metadata', {}) self.metadata = map_dict.get('metadata', {})
self.mosaic_file_list = map_dict.get('files', {}) self.mosaic_file_list = map_dict.get('files', {})
self.voterset_key = voterset_key
return None return None
@ -198,15 +196,6 @@ class AFCMUniverseMapFile:
except Exception as ex: 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 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 # Loop the files from the map
for ufilename in self.mosaic_file_list: for ufilename in self.mosaic_file_list:
self.process_file(ufilename) self.process_file(ufilename)
@ -439,7 +428,7 @@ class AFCMUniverseMapFile:
write_final_file Writes the final CSV to S3 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) self.metadata["total_rows"] = len(self.final_rows)
# Need to write the FINAL file # Need to write the FINAL file
@ -463,6 +452,10 @@ class AFCMUniverseMapFile:
write_stats_file Writes the stats JSON to S3 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 # Write the STATS file
stats_filename = "mosaic_stats.json" stats_filename = "mosaic_stats.json"
s3_key = os.path.join(self.metadata.get("s3_key", ""), stats_filename) 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 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 :return Dictionary object of the AF-VOTER
""" """
@ -506,7 +502,8 @@ class AFCMUniverseMapFile:
"voter_id": voter_row['UID'], "voter_id": voter_row['UID'],
"first_name": voter_row['FName'], "first_name": voter_row['FName'],
"last_name": voter_row['LName'], "last_name": voter_row['LName'],
"voterset_keys": [self.voterset_key], "voterset_keys": [voterset_key],
"campaign_key": campaign_key,
"data_fields": data_fields_dict, "data_fields": data_fields_dict,
"cell_phone": voter_row['Cell_Phone'] "cell_phone": voter_row['Cell_Phone']
} }