wedding-planner/app/mailers/admin_mailer.rb
Manuel Bustillo 397a0f34ff
All checks were successful
Run unit tests / copyright_notice (pull_request) Successful in 56s
Run unit tests / rubocop (pull_request) Successful in 1m10s
Run unit tests / check-licenses (pull_request) Successful in 1m20s
Run unit tests / unit_tests (pull_request) Successful in 2m3s
Run unit tests / build-static-assets (pull_request) Successful in 9m10s
Define a worker process and endpoint to send invitations PDF via email
2025-07-08 19:23:16 +02:00

46 lines
1.2 KiB
Ruby

# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
# frozen_string_literal: true
class AdminMailer < ApplicationMailer
def attendance_change_email
@guest = Guest.find(params[:guest_id])
ActsAsTenant.with_tenant(@guest.wedding) do
mail(
to: recipients,
subject: I18n.t(
'admin_mailer.attendance_change_email.subject',
name: @guest.name,
status: I18n.t("active_record.attributes.guest/status.#{@guest.status}")
)
)
end
end
def invitations_pdf_email
ActsAsTenant.with_tenant(Wedding.find(params[:wedding_id])) do
invitations = Invitation.includes(:guests).all
pdf_html = ActionController::Base.new.render_to_string(
template: 'invitations/sheet',
layout: 'pdf',
locals: { invitations: }
)
pdf = WickedPdf.new.pdf_from_string(pdf_html)
attachments["invitations_#{Time.current.strftime('%Y%m%d_%H%M%S')}.pdf"] = pdf
mail(
to: recipients,
subject: I18n.t('admin_mailer.invitations_pdf_email.subject')
)
end
end
private
def recipients
ActsAsTenant.current_tenant.users.pluck(:email)
end
end