Sha256: 27aca983b0e8818313066ac70ac7edb035c95184a19f25c8ee9d4b9252a9f111

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

module ShopifyAPI
  module Ping
    class Conversation < Base
      self.prefix = "/admin/api/ping-api/v1/"

      def send_message(message_attrs)
        message = ShopifyAPI::Ping::Message.new(
          message_attrs.merge(conversation_id: id)
        )

        message.save
        message
      end

      def successful_delivery(message_id:, delivery_timestamp:)
        delivery_details = ShopifyAPI::Ping::DeliveryConfirmationDetails.new(
          delivery_attrs(message_id, delivery_timestamp).merge(delivered: true)
        )
        delivery_details.save
        delivery_details
      end

      def failed_delivery(message_id:, delivery_timestamp:, details:)
        delivery_details = ShopifyAPI::Ping::DeliveryConfirmationDetails.new(
          delivery_attrs(message_id, delivery_timestamp).merge(delivered: false, details: details)
        )
        delivery_details.save
        delivery_details
      end

      def delivery_attrs(message_id, delivery_timestamp)
        {
          conversation_id: id,
          message_id: message_id,
          confirmation_timestamp: delivery_timestamp,
        }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
shopify_api-6.0.0 lib/shopify_api/resources/ping/conversation.rb
shopify_api-5.2.4 lib/shopify_api/resources/ping/conversation.rb
shopify_api-5.2.3 lib/shopify_api/resources/ping/conversation.rb