shopify_api 5.2.1 → 5.2.2

Sign up to get free protection for your applications and to get access to all the features.
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