1212from audit_table import upsert_audit_table
1313from common .aws_s3_utils import (
1414 copy_file_to_external_bucket ,
15- delete_file ,
1615 move_file ,
1716)
1817from common .clients import STREAM_NAME , get_s3_client , logger
1918from common .log_decorator import logging_decorator
2019from common .models .errors import UnhandledAuditTableError
2120from constants import (
2221 DPS_DESTINATION_BUCKET_NAME ,
22+ DPS_DESTINATION_PREFIX ,
2323 ERROR_TYPE_TO_STATUS_CODE_MAP ,
24- EXPECTED_BUCKET_OWNER_ACCOUNT ,
24+ EXPECTED_DPS_DESTINATION_ACCOUNT ,
25+ EXPECTED_SOURCE_BUCKET_ACCOUNT ,
26+ EXTENDED_ATTRIBUTES_ARCHIVE_PREFIX ,
2527 EXTENDED_ATTRIBUTES_FILE_PREFIX ,
26- EXTENDED_ATTRIBUTES_VACC_TYPE ,
2728 SOURCE_BUCKET_NAME ,
2829 FileNotProcessedReason ,
2930 FileStatus ,
3637 VaccineTypePermissionsError ,
3738)
3839from send_sqs_message import make_and_send_sqs_message
39- from supplier_permissions import validate_vaccine_type_permissions
40+ from supplier_permissions import validate_permissions_for_extended_attributes_files , validate_vaccine_type_permissions
4041from utils_for_filenameprocessor import get_creation_and_expiry_times
4142
4243
@@ -107,8 +108,8 @@ def handle_unexpected_bucket_name(bucket_name: str, file_key: str) -> dict:
107108 config and overarching design"""
108109 try :
109110 if file_key .startswith (EXTENDED_ATTRIBUTES_FILE_PREFIX ):
110- organization_code = validate_extended_attributes_file_key (file_key )
111- extended_attribute_identifier = f"{ organization_code } _{ EXTENDED_ATTRIBUTES_VACC_TYPE } "
111+ vaccine_type , organisation_code = validate_extended_attributes_file_key (file_key )
112+ extended_attribute_identifier = f"{ organisation_code } _{ vaccine_type } "
112113 logger .error (
113114 "Unable to process file %s due to unexpected bucket name %s" ,
114115 file_key ,
@@ -249,8 +250,10 @@ def handle_extended_attributes_file(
249250
250251 extended_attribute_identifier = None
251252 try :
252- organization_code = validate_extended_attributes_file_key (file_key )
253- extended_attribute_identifier = f"{ organization_code } _{ EXTENDED_ATTRIBUTES_VACC_TYPE } "
253+ vaccine_type , organisation_code = validate_extended_attributes_file_key (file_key )
254+ extended_attribute_identifier = validate_permissions_for_extended_attributes_files (
255+ vaccine_type , organisation_code
256+ )
254257
255258 upsert_audit_table (
256259 message_id ,
@@ -262,16 +265,17 @@ def handle_extended_attributes_file(
262265 )
263266
264267 # TODO: agree the prefix with DPS
265- dest_file_key = f"dps_destination /{ file_key } "
268+ dest_file_key = f"{ DPS_DESTINATION_PREFIX } /{ file_key } "
266269 copy_file_to_external_bucket (
267270 bucket_name ,
268271 file_key ,
269272 DPS_DESTINATION_BUCKET_NAME ,
270273 dest_file_key ,
271- EXPECTED_BUCKET_OWNER_ACCOUNT ,
272- EXPECTED_BUCKET_OWNER_ACCOUNT ,
274+ EXPECTED_DPS_DESTINATION_ACCOUNT ,
275+ EXPECTED_SOURCE_BUCKET_ACCOUNT ,
273276 )
274- delete_file (bucket_name , dest_file_key , EXPECTED_BUCKET_OWNER_ACCOUNT )
277+
278+ move_file (bucket_name , file_key , f"{ EXTENDED_ATTRIBUTES_ARCHIVE_PREFIX } /{ file_key } " )
275279
276280 upsert_audit_table (
277281 message_id ,
@@ -305,7 +309,7 @@ def handle_extended_attributes_file(
305309 extended_attribute_identifier = "unknown"
306310
307311 # Move file to archive
308- move_file (bucket_name , file_key , f"archive /{ file_key } " )
312+ move_file (bucket_name , file_key , f"{ EXTENDED_ATTRIBUTES_ARCHIVE_PREFIX } /{ file_key } " )
309313
310314 upsert_audit_table (
311315 message_id ,
0 commit comments