shopify_api 5.2.1 → 5.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9c77838f7f17c68d5a215c1f7be62d2cbd7d14307435694070f8252efe222af
4
- data.tar.gz: 0dc09a8b02adb8471380384683150949fe081eb8304bb1e7a0fd82ee1af28e48
3
+ metadata.gz: b24e62339306bcf90e50246ef4e98f4ffa46c6a885d5859b14969f3aa1e62c9c
4
+ data.tar.gz: 7e57071a073cb0e5e2bda965a1ef4cef3cc42a968905b407df9184757a04ec3b
5
5
  SHA512:
6
- metadata.gz: d75774779c87aec609443674312a27d4c9b8530745ff7127bcb149ba6a01b84ebdfe0a986a04b07b7aa5be4c6e9ba8e88cafdd3f4ec41c530c87c12cd6ffe940
7
- data.tar.gz: c22a07f6fb4af17fa6c9d76fc8e6e806e339e948a6d64481c5d29525d109cb0cff44dadf2b0b99ee18a16c94bf45941c47aeb821ab71c1f99ea1c43a67fcb75e
6
+ metadata.gz: 5224d787f4cc65f3174fa894098af11b7342059510c916fc4359ab2285793053e97bfb8eee318e136410fe6fd67626f7146f7f7727f8dba4e5bcc1b32867d597
7
+ data.tar.gz: 54c9dfed163c44b51fd811ba38efcf4c157ffdcaad5b5cc7f064e035ad0c890d9580b20ed316b75f99cac6368eb19e17e19c1a2da1bb556eb49562dd3f947a72
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ == Version 5.2.2
2
+
3
+ * Add delivery confirmation endpoint to Ping resources.
4
+
1
5
  == Version 5.2.1
2
6
 
3
7
  * Log warning when Shopify indicates deprecated API call was performed
@@ -13,6 +13,33 @@ module ShopifyAPI
13
13
  message.save
14
14
  message
15
15
  end
16
+
17
+ def successful_delivery(message_id:, delivery_timestamp:)
18
+ delivery_details = ShopifyAPI::Ping::DeliveryConfirmation.new(
19
+ conversation_id: id,
20
+ message_id: message_id,
21
+ delivery_confirmation_details: {
22
+ delivered: true,
23
+ confirmation_timestamp: delivery_timestamp,
24
+ }
25
+ )
26
+ delivery_details.save
27
+ delivery_details
28
+ end
29
+
30
+ def failed_delivery(message_id:, delivery_timestamp:, details:)
31
+ delivery_details = ShopifyAPI::Ping::DeliveryConfirmation.new(
32
+ conversation_id: id,
33
+ message_id: message_id,
34
+ delivery_confirmation_details: {
35
+ delivered: false,
36
+ confirmation_timestamp: delivery_timestamp,
37
+ details: details,
38
+ }
39
+ )
40
+ delivery_details.save
41
+ delivery_details
42
+ end
16
43
  end
17
44
  end
18
45
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ShopifyAPI
4
+ module Ping
5
+ class DeliveryConfirmation < Base
6
+ self.prefix = "/admin/api/ping-api/v1/conversations/:conversation_id/messages/:message_id/"
7
+ self.collection_name = "delivery_confirmation"
8
+ end
9
+ end
10
+ end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  module ShopifyAPI
4
3
  module Ping
5
4
  class Message < Base
@@ -1,3 +1,3 @@
1
1
  module ShopifyAPI
2
- VERSION = "5.2.1"
2
+ VERSION = "5.2.2"
3
3
  end
@@ -0,0 +1 @@
1
+ {"delivery_confirmation_details":{"delivery_timestamp":"2018-08-29T22:16:05.589479Z","delivered":"false","details":"Integration failed to deliver message."}}
@@ -0,0 +1 @@
1
+ {"delivery_confirmation_details":{"delivery_timestamp":"2018-08-29T22:16:05.589479Z","delivered":"true"}}
@@ -36,4 +36,36 @@ class PingConversationTest < Test::Unit::TestCase
36
36
 
37
37
  assert_equal "d0c7a2e6-8084-4e79-8483-e4a1352b81f7", message.id
38
38
  end
39
+
40
+ def test_successful_delivery
41
+ fake("api/ping-api/v1/conversations/123/messages/111/delivery_confirmation",
42
+ method: :post,
43
+ body: load_fixture('ping/successful_delivery_confirmation'))
44
+
45
+ conversation = ShopifyAPI::Ping::Conversation.new(id: '123')
46
+ delivery_confirmation = conversation.successful_delivery(
47
+ message_id: '111',
48
+ delivery_timestamp: "2018-08-29T22:16:05.589479Z"
49
+ )
50
+
51
+ assert_equal("true", delivery_confirmation.delivered)
52
+ assert_equal("2018-08-29T22:16:05.589479Z", delivery_confirmation.delivery_timestamp)
53
+ end
54
+
55
+ def test_failed_delivery
56
+ fake("api/ping-api/v1/conversations/123/messages/111/delivery_confirmation",
57
+ method: :post,
58
+ body: load_fixture('ping/failed_delivery_confirmation'))
59
+
60
+ conversation = ShopifyAPI::Ping::Conversation.new(id: '123')
61
+ delivery_confirmation = conversation.failed_delivery(
62
+ message_id: '111',
63
+ delivery_timestamp: Time.now.to_s,
64
+ details: "Integration failed to deliver message."
65
+ )
66
+
67
+ assert_equal("false", delivery_confirmation.delivered)
68
+ assert_equal("2018-08-29T22:16:05.589479Z", delivery_confirmation.delivery_timestamp)
69
+ assert_equal("Integration failed to deliver message.", delivery_confirmation.details)
70
+ end
39
71
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class PingMessageTest < Test::Unit::TestCase
6
+ def test_create_message
7
+ fake("api/ping-api/v1/conversations/123/messages",
8
+ method: :post,
9
+ body: load_fixture('ping/message'))
10
+
11
+ message = ShopifyAPI::Ping::Message.new(
12
+ dedupe_key: SecureRandom.uuid,
13
+ content: {
14
+ text: "Hello from shopify_api",
15
+ },
16
+ sender_id: 'test',
17
+ conversation_id: '123',
18
+ )
19
+
20
+ message.save
21
+ assert_equal("d0c7a2e6-8084-4e79-8483-e4a1352b81f7", message.id)
22
+ end
23
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.1
4
+ version: 5.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
@@ -250,6 +250,7 @@ files:
250
250
  - lib/shopify_api/resources/payment_details.rb
251
251
  - lib/shopify_api/resources/ping.rb
252
252
  - lib/shopify_api/resources/ping/conversation.rb
253
+ - lib/shopify_api/resources/ping/delivery_confirmation.rb
253
254
  - lib/shopify_api/resources/ping/message.rb
254
255
  - lib/shopify_api/resources/policy.rb
255
256
  - lib/shopify_api/resources/price_rule.rb
@@ -374,7 +375,9 @@ files:
374
375
  - test/fixtures/payment.json
375
376
  - test/fixtures/payments.json
376
377
  - test/fixtures/ping/conversation.json
378
+ - test/fixtures/ping/failed_delivery_confirmation.json
377
379
  - test/fixtures/ping/message.json
380
+ - test/fixtures/ping/successful_delivery_confirmation.json
378
381
  - test/fixtures/policies.json
379
382
  - test/fixtures/price_rule.json
380
383
  - test/fixtures/price_rules.json
@@ -429,6 +432,7 @@ files:
429
432
  - test/order_test.rb
430
433
  - test/payment_test.rb
431
434
  - test/ping/conversation_test.rb
435
+ - test/ping/message_test.rb
432
436
  - test/policy_test.rb
433
437
  - test/price_rule_test.rb
434
438
  - test/product_listing_test.rb