Sha256: b88a2d4ecfff48750e039a5cdd3024dbe888aa8f5f4c8f9e0b3641202540d66e
Contents?: true
Size: 853 Bytes
Versions: 7
Compression:
Stored size: 853 Bytes
Contents
# frozen_string_literal: true module Emailbutler module Webhooks module Mappers class Sendgrid DELIVERABILITY_MAPPER = { 'processed' => 'processed', 'delivered' => 'delivered', 'deferred' => 'failed', 'bounce' => 'failed', 'dropped' => 'failed' }.freeze def self.call(...) new.call(...) end def call(payload:) payload['_json'].filter_map { |message| message_uuid = message['smtp-id'] status = DELIVERABILITY_MAPPER[message['event']] next unless message_uuid || status { message_uuid: message_uuid, status: status, timestamp: Time.at(message['timestamp']).utc.to_datetime } } end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems