class BulkUploadMailer < NotifyMailer
include ActionView :: Helpers :: TextHelper
COMPLETE_TEMPLATE_ID = " 83279578-c890-4168-838b-33c9cf0dc9f0 " . freeze
FAILED_CSV_ERRORS_TEMPLATE_ID = " e27abcd4-5295-48c2-b127-e9ee4b781b75 " . freeze
FAILED_FILE_SETUP_ERROR_TEMPLATE_ID = " 24c9f4c7-96ad-470a-ba31-eb51b7cbafd9 " . freeze
FAILED_SERVICE_ERROR_TEMPLATE_ID = " c3f6288c-7a74-4e77-99ee-6c4a0f6e125a " . freeze
HOW_TO_FIX_UPLOAD_TEMPLATE_ID = " 21a07b26-f625-4846-9f4d-39e30937aa24 " . freeze
CHECK_SOFT_VALIDATIONS_TEMPLATE_ID = " 21a07b26-f625-4846-9f4d-39e30937aa24 " . freeze
def send_how_to_fix_upload_mail ( bulk_upload : )
title = " We found #{ pluralize ( bulk_upload . bulk_upload_errors . count , 'error' ) } in your bulk upload "
description = " There was a problem with your #{ bulk_upload . year_combo } #{ bulk_upload . log_type } data. Check the error report below to fix these errors. "
cta_link = bulk_upload . sales? ? start_bulk_upload_sales_resume_url ( bulk_upload ) : start_bulk_upload_lettings_resume_url ( bulk_upload )
send_email (
bulk_upload . user . email ,
HOW_TO_FIX_UPLOAD_TEMPLATE_ID ,
{
title : ,
filename : bulk_upload . filename ,
upload_timestamp : bulk_upload . created_at . to_fs ( :govuk_date_and_time ) ,
description : ,
cta_link : ,
} ,
)
end
def send_check_soft_validations_mail ( bulk_upload : )
title = " Check your file data "
description = " Some of your #{ bulk_upload . year_combo } #{ bulk_upload . log_type } data might not be right. Click the link below to review the potential errors, and check your file to see if the data is correct. "
cta_link = if bulk_upload . lettings?
bulk_upload_lettings_soft_validations_check_url ( bulk_upload , page : " confirm-soft-errors " )
else
bulk_upload_sales_soft_validations_check_url ( bulk_upload , page : " confirm-soft-errors " )
end
send_email (
bulk_upload . user . email ,
CHECK_SOFT_VALIDATIONS_TEMPLATE_ID ,
{
title : ,
filename : bulk_upload . filename ,
upload_timestamp : bulk_upload . created_at . to_fs ( :govuk_date_and_time ) ,
description : ,
cta_link : ,
} ,
)
end
def send_bulk_upload_complete_mail ( user : , bulk_upload : )
url = if bulk_upload . lettings?
clear_filters_url ( filter_type : " lettings_logs " )
else
clear_filters_url ( filter_type : " sales_logs " )
end
n_logs = pluralize ( bulk_upload . logs . count , " log " )
title = " You’ve successfully uploaded #{ n_logs } "
success_description = " The #{ bulk_upload . log_type } #{ bulk_upload . year_combo } data you uploaded has been checked. The #{ n_logs } you uploaded are now complete. "
send_email (
user . email ,
COMPLETE_TEMPLATE_ID ,
{
title : ,
filename : bulk_upload . filename ,
upload_timestamp : bulk_upload . created_at . to_fs ( :govuk_date_and_time ) ,
success_description : ,
logs_link : url ,
log_type : bulk_upload . log_type ,
} ,
)
end
def send_correct_and_upload_again_mail ( bulk_upload : )
summary_report_link = if BulkUploadErrorSummaryTableComponent . new ( bulk_upload : ) . errors?
bulk_upload . sales? ? summary_bulk_upload_sales_result_url ( bulk_upload ) : summary_bulk_upload_lettings_result_url ( bulk_upload )
else
bulk_upload . sales? ? bulk_upload_sales_result_url ( bulk_upload ) : bulk_upload_lettings_result_url ( bulk_upload )
end
send_email (
bulk_upload . user . email ,
FAILED_CSV_ERRORS_TEMPLATE_ID ,
{
filename : bulk_upload . filename ,
upload_timestamp : bulk_upload . created_at . to_fs ( :govuk_date_and_time ) ,
year_combo : bulk_upload . year_combo ,
lettings_or_sales : bulk_upload . log_type ,
summary_report_link : ,
} ,
)
end
def send_bulk_upload_failed_file_setup_error_mail ( bulk_upload : )
bulk_upload_link = if BulkUploadErrorSummaryTableComponent . new ( bulk_upload : ) . errors?
bulk_upload . sales? ? summary_bulk_upload_sales_result_url ( bulk_upload ) : summary_bulk_upload_lettings_result_url ( bulk_upload )
else
bulk_upload . sales? ? bulk_upload_sales_result_url ( bulk_upload ) : bulk_upload_lettings_result_url ( bulk_upload )
end
send_email (
bulk_upload . user . email ,
FAILED_FILE_SETUP_ERROR_TEMPLATE_ID ,
{
filename : bulk_upload . filename ,
upload_timestamp : bulk_upload . created_at . to_fs ( :govuk_date_and_time ) ,
lettings_or_sales : bulk_upload . log_type ,
year_combo : bulk_upload . year_combo ,
bulk_upload_link : ,
} ,
)
end
def send_bulk_upload_failed_service_error_mail ( bulk_upload : , errors : [ ] )
bulk_upload_link = if bulk_upload . lettings?
start_bulk_upload_lettings_logs_url
else
start_bulk_upload_sales_logs_url
end
send_email (
bulk_upload . user . email ,
FAILED_SERVICE_ERROR_TEMPLATE_ID ,
{
filename : bulk_upload . filename ,
upload_timestamp : bulk_upload . created_at . to_fs ( :govuk_date_and_time ) ,
lettings_or_sales : bulk_upload . log_type ,
year_combo : bulk_upload . year_combo ,
errors : errors . map { | e | " - #{ e } " } . join ( " \n " ) ,
bulk_upload_link : ,
} ,
)
end
end