Method: Webhookdb::Message.dispatch
- Defined in:
- lib/webhookdb/message.rb
.dispatch(template, to, transport_type) ⇒ Object
Create a Webhookdb::Message::Delivery ready to deliver (rendered, all bodies set up) using the given transport_type to the given user.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/webhookdb/message.rb', line 39 def self.dispatch(template, to, transport_type) (transport = Webhookdb::Message::Transport.for(transport_type)) or raise InvalidTransportError, "Invalid transport #{transport_type}" recipient = transport.recipient(to) contents = self.render(template, transport_type, recipient) Webhookdb::Message::Delivery.db.transaction do delivery = Webhookdb::Message::Delivery.create( template: template.full_template_name, transport_type: transport.type, transport_service: transport.service, to: recipient.to, recipient: recipient.customer, extra_fields: template.extra_fields, ) transport.add_bodies(delivery, contents) delivery.publish_deferred("dispatched", delivery.id) return delivery end end |