Sha256: 4a83649a08f6e2c800b3604a43a8fa32f86a1e2df0cecdae2c300191c706c71e
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true module PUNK class SendEmailWorker < Worker args :from, :to, :subject, :template, :variables, :tags def validate validates_type String, :from validates_type String, :to validates_email :to validates_includes PUNK.get.mailgun.whitelist, :to if !PUNK.env.test? && !PUNK.get.mailgun.mock && PUNK.get.mailgun.whitelist.present? validates_type String, :subject validates_type String, :template validates_type Hash, :variables, allow_nil: true validates_type Array, :tags, allow_nil: true validates_length_range 0..1, :tags, allow_nil: true end def process require "mailgun-ruby" client = if !PUNK.env.test? && PUNK.get.mailgun.mock Mailgun::Client.new(PUNK.get.mailgun.api_key, "bin.mailgun.net", PUNK.get.mailgun.postbin, ssl=false) # rubocop:disable Lint/UselessAssignment,Layout/SpaceAroundOperators else Mailgun::Client.new(PUNK.get.mailgun.api_key) end client.enable_test_mode! if PUNK.env.test? message = { from: from, to: to, subject: subject, template: template } variables.each { |variable, value| message["v:#{variable}"] = value } if variables.present? tags.each { |tag| message["o:tag"] = tag } if tags.present? # TODO: store return value in Message table # TODO: update Message table with events from mailgun webhooks client.send_message(PUNK.get.mailgun.domain, message) return unless !PUNK.env.test? && PUNK.get.mailgun.mock require "launchy" Launchy.open("http://bin.mailgun.net/#{PUNK.get.mailgun.postbin}") end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
punk-0.4.1 | lib/punk/workers/send_email_worker.rb |