wix-hive-ruby 0.9.2 → 1.0.0
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 +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +38 -11
- data/e2e/activities_api_spec.rb +97 -3
- data/e2e/contacts_api_spec.rb +74 -28
- data/e2e/e2e_helper.rb +7 -3
- data/e2e/redirects_api_spec.rb +7 -0
- data/e2e/sites_api_spec.rb +11 -0
- data/lib/hive/activities/contact/contact_create_activity.rb +1 -11
- data/lib/hive/activities/contact/contact_form_activity.rb +2 -2
- data/lib/hive/activities/contact/subscription_form_activity.rb +38 -0
- data/lib/hive/activities/conversion/conversion_complete_activity.rb +1 -1
- data/lib/hive/activities/e_commerce/cart_add_activity.rb +55 -0
- data/lib/hive/activities/e_commerce/cart_checkout_activity.rb +18 -0
- data/lib/hive/activities/e_commerce/cart_remove_activity.rb +22 -0
- data/lib/hive/activities/e_commerce/purchase_activity.rb +17 -1
- data/lib/hive/activities/factory.rb +11 -21
- data/lib/hive/activities/hotels/hotels_cancel_activity.rb +1 -1
- data/lib/hive/activities/hotels/hotels_confirmation_activity.rb +1 -1
- data/lib/hive/activities/hotels/hotels_purchase_activity.rb +1 -1
- data/lib/hive/activities/hotels/hotels_purchase_failed_activity.rb +1 -1
- data/lib/hive/activities/messaging/send_activity.rb +1 -1
- data/lib/hive/activities/music/album_fan_activity.rb +1 -1
- data/lib/hive/activities/music/album_played_activity.rb +1 -1
- data/lib/hive/activities/music/album_share_activity.rb +2 -2
- data/lib/hive/activities/music/track_lyrics_activity.rb +1 -1
- data/lib/hive/activities/music/track_play_activity.rb +1 -1
- data/lib/hive/activities/music/track_played_activity.rb +1 -1
- data/lib/hive/activities/music/track_share_activity.rb +2 -2
- data/lib/hive/activities/music/track_skipped_activity.rb +1 -1
- data/lib/hive/activities/scheduler/scheduler_appointment_activity.rb +12 -1
- data/lib/hive/activities/shipping/shipping_delivered_activity.rb +34 -0
- data/lib/hive/activities/shipping/shipping_shipped_activity.rb +109 -0
- data/lib/hive/activities/shipping/shipping_status_change_activity.rb +51 -0
- data/lib/hive/activities/shipping/shipping_status_changed_activity.rb +51 -0
- data/lib/hive/redirect.rb +19 -0
- data/lib/hive/rest/api.rb +4 -0
- data/lib/hive/rest/contacts.rb +2 -4
- data/lib/hive/rest/redirects.rb +13 -0
- data/lib/hive/rest/sites.rb +17 -0
- data/lib/hive/site.rb +33 -0
- data/lib/hive/version.rb +3 -3
- data/spec/hive/activities/contact/subscription_form_activity_spec.rb +15 -0
- data/spec/hive/activities/e_commerce/purchase_activity_spec.rb +4 -0
- data/spec/hive/activities/factory_spec.rb +16 -0
- data/spec/hive/activities/shipping/shipping_delivered_acitivty_spec.rb +10 -0
- data/spec/hive/activities/shipping/shipping_shipped_acitivty_spec.rb +21 -0
- data/spec/hive/activities/shipping/shipping_status_changed_acitivty_spec.rb +10 -0
- data/spec/hive/rest/contacts_spec.rb +10 -9
- data/spec/hive/rest/redirects_spec.rb +12 -0
- data/spec/hive/rest/sites_spec.rb +17 -0
- metadata +30 -2
@@ -0,0 +1,109 @@
|
|
1
|
+
# THIS IS A GENERATED FILE, DO NOT EDIT THIS
|
2
|
+
# Generated on 2015-02-19T18:01:11.452Z
|
3
|
+
|
4
|
+
require 'hashie'
|
5
|
+
require 'hive/extensions/hashie_validate_enum'
|
6
|
+
|
7
|
+
module Hive
|
8
|
+
module Activities
|
9
|
+
module Shipping
|
10
|
+
class Variant < Hashie::Trash
|
11
|
+
include Hashie::Extensions::IgnoreUndeclared
|
12
|
+
|
13
|
+
property :title, required: true
|
14
|
+
property :value
|
15
|
+
end
|
16
|
+
|
17
|
+
class Metadata < Hashie::Trash
|
18
|
+
include Hashie::Extensions::IgnoreUndeclared
|
19
|
+
|
20
|
+
property :name, required: true
|
21
|
+
property :value, required: true
|
22
|
+
end
|
23
|
+
|
24
|
+
class Item < Hashie::Trash
|
25
|
+
include Hashie::Extensions::IgnoreUndeclared
|
26
|
+
include Hashie::Extensions::Coercion
|
27
|
+
|
28
|
+
coerce_key :variants, Array[Variant]
|
29
|
+
coerce_key :categories, Array[String]
|
30
|
+
coerce_key :metadata, Array[Metadata]
|
31
|
+
|
32
|
+
property :id, required: true
|
33
|
+
property :sku
|
34
|
+
property :title, required: true
|
35
|
+
property :quantity, required: true
|
36
|
+
property :price
|
37
|
+
property :formattedPrice
|
38
|
+
property :currency, required: true
|
39
|
+
property :productLink
|
40
|
+
property :variants, default: []
|
41
|
+
property :categories, default: []
|
42
|
+
property :metadata, default: []
|
43
|
+
|
44
|
+
def add_variant(args)
|
45
|
+
variants << Variant.new(args)
|
46
|
+
end
|
47
|
+
|
48
|
+
def add_metadata(args)
|
49
|
+
metadata << Metadata.new(args)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
class DeliveryEstimate < Hashie::Trash
|
54
|
+
include Hashie::Extensions::IgnoreUndeclared
|
55
|
+
|
56
|
+
property :start
|
57
|
+
property :end
|
58
|
+
end
|
59
|
+
|
60
|
+
class ShippingDetail < Hashie::Trash
|
61
|
+
include Hashie::Extensions::IgnoreUndeclared
|
62
|
+
include Hashie::Extensions::Coercion
|
63
|
+
|
64
|
+
coerce_key :deliveryEstimate, DeliveryEstimate
|
65
|
+
|
66
|
+
property :method, required: true
|
67
|
+
property :tracking
|
68
|
+
property :deliveryEstimate, required: true
|
69
|
+
end
|
70
|
+
|
71
|
+
class ShippingAddres < Hashie::Trash
|
72
|
+
include Hashie::Extensions::IgnoreUndeclared
|
73
|
+
|
74
|
+
property :firstName
|
75
|
+
property :lastName
|
76
|
+
property :email
|
77
|
+
property :phone
|
78
|
+
property :country
|
79
|
+
property :countryCode
|
80
|
+
property :region
|
81
|
+
property :regionCode
|
82
|
+
property :city
|
83
|
+
property :address1
|
84
|
+
property :address2
|
85
|
+
property :zip
|
86
|
+
property :company
|
87
|
+
end
|
88
|
+
|
89
|
+
class ShippedActivity < Hashie::Trash
|
90
|
+
include Hashie::Extensions::IgnoreUndeclared
|
91
|
+
include Hashie::Extensions::Coercion
|
92
|
+
|
93
|
+
coerce_key :items, Array[Item]
|
94
|
+
coerce_key :shippingDetails, ShippingDetail
|
95
|
+
coerce_key :shippingAddress, ShippingAddres
|
96
|
+
|
97
|
+
property :orderId, required: true
|
98
|
+
property :items, default: [], required: true
|
99
|
+
property :shippingDetails
|
100
|
+
property :shippingAddress
|
101
|
+
property :note
|
102
|
+
|
103
|
+
def add_item(args)
|
104
|
+
items << Item.new(args)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# THIS IS A GENERATED FILE, DO NOT EDIT THIS
|
2
|
+
# Generated on 2014-10-30T15:13:42.430Z
|
3
|
+
|
4
|
+
require 'hashie'
|
5
|
+
require 'hive/extensions/hashie_validate_enum'
|
6
|
+
|
7
|
+
module Hive
|
8
|
+
module Activities
|
9
|
+
module Shipping
|
10
|
+
class ShippingEstimate < Hashie::Trash
|
11
|
+
include Hashie::Extensions::IgnoreUndeclared
|
12
|
+
|
13
|
+
property :start
|
14
|
+
property :end
|
15
|
+
end
|
16
|
+
|
17
|
+
class StatusChangeActivity < Hashie::Trash
|
18
|
+
include Hashie::Extensions::IgnoreUndeclared
|
19
|
+
include Hashie::Extensions::Coercion
|
20
|
+
|
21
|
+
class ShippingDetail < Hashie::Trash
|
22
|
+
include Hashie::Extensions::IgnoreUndeclared
|
23
|
+
include Hashie::Extensions::Coercion
|
24
|
+
|
25
|
+
coerce_key :shippingEstimate, ShippingEstimate
|
26
|
+
coerce_key :deliveryEstimate, DeliveryEstimate
|
27
|
+
|
28
|
+
property :method
|
29
|
+
property :tracking
|
30
|
+
property :shippingEstimate
|
31
|
+
property :deliveryEstimate
|
32
|
+
end
|
33
|
+
|
34
|
+
coerce_key :items, Array[Item]
|
35
|
+
coerce_key :shippingDetails, ShippingDetail
|
36
|
+
coerce_key :shippingAddress, ShippingAddres
|
37
|
+
|
38
|
+
property :orderId, required: true
|
39
|
+
property :status, required: true, transform_with: Hashie::Validate.enum(%w(awaiting_shipment awaiting_payment awaiting_fulfillment partially_shipped))
|
40
|
+
property :items, default: [], required: true
|
41
|
+
property :shippingDetails
|
42
|
+
property :shippingAddress
|
43
|
+
property :note
|
44
|
+
|
45
|
+
def add_item(args)
|
46
|
+
items << Item.new(args)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# THIS IS A GENERATED FILE, DO NOT EDIT THIS
|
2
|
+
# Generated on 2015-02-19T18:01:11.497Z
|
3
|
+
|
4
|
+
require 'hashie'
|
5
|
+
require 'hive/extensions/hashie_validate_enum'
|
6
|
+
|
7
|
+
module Hive
|
8
|
+
module Activities
|
9
|
+
module Shipping
|
10
|
+
class ShippingEstimate < Hashie::Trash
|
11
|
+
include Hashie::Extensions::IgnoreUndeclared
|
12
|
+
|
13
|
+
property :start
|
14
|
+
property :end
|
15
|
+
end
|
16
|
+
|
17
|
+
class StatusChangedActivity < Hashie::Trash
|
18
|
+
include Hashie::Extensions::IgnoreUndeclared
|
19
|
+
include Hashie::Extensions::Coercion
|
20
|
+
|
21
|
+
class ShippingDetail < Hashie::Trash
|
22
|
+
include Hashie::Extensions::IgnoreUndeclared
|
23
|
+
include Hashie::Extensions::Coercion
|
24
|
+
|
25
|
+
coerce_key :shippingEstimate, ShippingEstimate
|
26
|
+
coerce_key :deliveryEstimate, DeliveryEstimate
|
27
|
+
|
28
|
+
property :method
|
29
|
+
property :tracking
|
30
|
+
property :shippingEstimate
|
31
|
+
property :deliveryEstimate
|
32
|
+
end
|
33
|
+
|
34
|
+
coerce_key :items, Array[Item]
|
35
|
+
coerce_key :shippingDetails, ShippingDetail
|
36
|
+
coerce_key :shippingAddress, ShippingAddres
|
37
|
+
|
38
|
+
property :orderId, required: true
|
39
|
+
property :status, required: true, transform_with: Hashie::Validate.enum(%w(AWAITING_SHIPMENT AWAITING_PAYMENT AWAITING_FULFILMENT PARTIALLY_SHIPPED))
|
40
|
+
property :items, default: [], required: true
|
41
|
+
property :shippingDetails
|
42
|
+
property :shippingAddress
|
43
|
+
property :note
|
44
|
+
|
45
|
+
def add_item(args)
|
46
|
+
items << Item.new(args)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'hashie'
|
2
|
+
|
3
|
+
module Hive
|
4
|
+
class Redirect < Hashie::Trash
|
5
|
+
include Hashie::Extensions::IgnoreUndeclared
|
6
|
+
|
7
|
+
property :id
|
8
|
+
property :name
|
9
|
+
property :description
|
10
|
+
property :target
|
11
|
+
end
|
12
|
+
|
13
|
+
class Redirects < Hashie::Trash
|
14
|
+
include Hashie::Extensions::IgnoreUndeclared
|
15
|
+
include Hashie::Extensions::Coercion
|
16
|
+
|
17
|
+
coerce_key :redirects, Array[Redirect]
|
18
|
+
end
|
19
|
+
end
|
data/lib/hive/rest/api.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'hive/rest/contacts'
|
2
2
|
require 'hive/rest/activities'
|
3
3
|
require 'hive/rest/insights'
|
4
|
+
require 'hive/rest/sites'
|
5
|
+
require 'hive/rest/redirects'
|
4
6
|
|
5
7
|
module Hive
|
6
8
|
module REST
|
@@ -8,6 +10,8 @@ module Hive
|
|
8
10
|
include Hive::REST::Contacts
|
9
11
|
include Hive::REST::Activities
|
10
12
|
include Hive::REST::Insights
|
13
|
+
include Hive::REST::Sites
|
14
|
+
include Hive::REST::Redirects
|
11
15
|
end
|
12
16
|
end
|
13
17
|
end
|
data/lib/hive/rest/contacts.rb
CHANGED
@@ -34,10 +34,8 @@ module Hive
|
|
34
34
|
perform_with_cursor(:get, 'v1/contacts/subscribers', Hive::ContactSubscriber)
|
35
35
|
end
|
36
36
|
|
37
|
-
def
|
38
|
-
|
39
|
-
|
40
|
-
# edit_contact_field("v1/contacts/#{contact_id}", contact)
|
37
|
+
def patch_contact(id, patch_operations, modified_at)
|
38
|
+
perform_with_object(:patch, "v1/contacts/#{id}", Hive::Contact, body: patch_operations.to_json, params: { modifiedAt: modified_at })
|
41
39
|
end
|
42
40
|
|
43
41
|
def update_contact_name(id, name, modified_at)
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'hive/site'
|
2
|
+
|
3
|
+
module Hive
|
4
|
+
module REST
|
5
|
+
module Sites
|
6
|
+
include Hive::Util
|
7
|
+
|
8
|
+
def sites_site(query_options = {})
|
9
|
+
perform_with_object(:get, 'v1/sites/site', Hive::Site, params: query_options)
|
10
|
+
end
|
11
|
+
|
12
|
+
def sites_site_pages(query_options = {})
|
13
|
+
perform_with_object(:get, 'v1/sites/site/pages', Hive::SitePages, params: query_options)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/hive/site.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'hashie'
|
2
|
+
|
3
|
+
module Hive
|
4
|
+
class Site < Hashie::Trash
|
5
|
+
include Hashie::Extensions::IgnoreUndeclared
|
6
|
+
include Hashie::Extensions::Coercion
|
7
|
+
|
8
|
+
coerce_key :url
|
9
|
+
coerce_key :status
|
10
|
+
|
11
|
+
property :url
|
12
|
+
property :status
|
13
|
+
end
|
14
|
+
|
15
|
+
class Page < Hashie::Trash
|
16
|
+
include Hashie::Extensions::IgnoreUndeclared
|
17
|
+
|
18
|
+
property :path
|
19
|
+
property :wixPageId
|
20
|
+
property :appPageId
|
21
|
+
end
|
22
|
+
|
23
|
+
class SitePages < Hashie::Trash
|
24
|
+
include Hashie::Extensions::IgnoreUndeclared
|
25
|
+
include Hashie::Extensions::Coercion
|
26
|
+
|
27
|
+
coerce_key :siteUrl, Site
|
28
|
+
coerce_key :pages, Array[Page]
|
29
|
+
|
30
|
+
property :siteUrl
|
31
|
+
property :pages, default: []
|
32
|
+
end
|
33
|
+
end
|
data/lib/hive/version.rb
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'CONTACT_SUBSCRIPTION_FORM' do
|
4
|
+
|
5
|
+
email = 'karen@meep.com'
|
6
|
+
phone = '+1-555-555-555'
|
7
|
+
name = {prefix: 'sir', first: 'mix', middle: 'a lot', last: 'the', suffix: 'III'}
|
8
|
+
|
9
|
+
subject(:create_activity) {ACTIVITIES_FACTORY::CONTACT_SUBSCRIPTION_FORM.klass.new( email: email, phone: phone, name: name )}
|
10
|
+
|
11
|
+
it '.add_field' do
|
12
|
+
create_activity.add_field( name: 'custom', value: 'value' )
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -15,5 +15,9 @@ describe 'E_COMMERCE_PURCHASE' do
|
|
15
15
|
create_activity.add_item( id: 1, title: 'title', quantity: 1, currency: 'EUR' )
|
16
16
|
create_activity.items.first.add_variant( title: 'title' )
|
17
17
|
end
|
18
|
+
it '.add_metadata' do
|
19
|
+
create_activity.add_item( id: 1, title: 'title', quantity: 1, currency: 'EUR' )
|
20
|
+
create_activity.items.first.add_metadata( name: 'custom', value: 'value' )
|
21
|
+
end
|
18
22
|
end
|
19
23
|
end
|
@@ -6,6 +6,10 @@ describe Hive::Activities do
|
|
6
6
|
it '#CONTACT_CONTACT_FORM' do
|
7
7
|
expect(Hive::Activities::CONTACT_CONTACT_FORM.klass).to eq Hive::Activities.class_for_type(Hive::Activities::CONTACT_CONTACT_FORM.type)
|
8
8
|
end
|
9
|
+
|
10
|
+
it '#CONTACT_SUBSCRIPTION_FORM' do
|
11
|
+
expect(Hive::Activities::CONTACT_SUBSCRIPTION_FORM.klass).to eq Hive::Activities.class_for_type(Hive::Activities::CONTACT_SUBSCRIPTION_FORM.type)
|
12
|
+
end
|
9
13
|
|
10
14
|
it '#CONTACTS_CREATE' do
|
11
15
|
expect(Hive::Activities::CONTACTS_CREATE.klass).to eq Hive::Activities.class_for_type(Hive::Activities::CONTACTS_CREATE.type)
|
@@ -75,6 +79,18 @@ describe Hive::Activities do
|
|
75
79
|
expect(Hive::Activities::SCHEDULER_APPOINTMENT.klass).to eq Hive::Activities.class_for_type(Hive::Activities::SCHEDULER_APPOINTMENT.type)
|
76
80
|
end
|
77
81
|
|
82
|
+
it '#SHIPPING_DELIVERED' do
|
83
|
+
expect(Hive::Activities::SHIPPING_DELIVERED.klass).to eq Hive::Activities.class_for_type(Hive::Activities::SHIPPING_DELIVERED.type)
|
84
|
+
end
|
85
|
+
|
86
|
+
it '#SHIPPING_SHIPPED' do
|
87
|
+
expect(Hive::Activities::SHIPPING_SHIPPED.klass).to eq Hive::Activities.class_for_type(Hive::Activities::SHIPPING_SHIPPED.type)
|
88
|
+
end
|
89
|
+
|
90
|
+
it '#SHIPPING_STATUS_CHANGED' do
|
91
|
+
expect(Hive::Activities::SHIPPING_STATUS_CHANGED.klass).to eq Hive::Activities.class_for_type(Hive::Activities::SHIPPING_STATUS_CHANGED.type)
|
92
|
+
end
|
93
|
+
|
78
94
|
it 'Invalid type' do
|
79
95
|
expect(Hive::Activities.class_for_type('invalid')).to be_nil
|
80
96
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'SHIPPING_DELIVERED' do
|
4
|
+
|
5
|
+
subject(:create_activity) { ACTIVITIES_FACTORY::SHIPPING_DELIVERED.klass.new( orderId: '11111') }
|
6
|
+
|
7
|
+
it '.add_item' do
|
8
|
+
create_activity.add_item( id: 1, title: 'title', quantity: 1, currency: 'EUR' )
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'SHIPPING_SHIPPED' do
|
4
|
+
|
5
|
+
subject(:create_activity) { ACTIVITIES_FACTORY::SHIPPING_SHIPPED.klass.new( orderId: '11111') }
|
6
|
+
|
7
|
+
it '.add_item' do
|
8
|
+
create_activity.add_item( id: 1, title: 'title', quantity: 1, currency: 'EUR' )
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'SHIPPING_SHIPPED::Item' do
|
12
|
+
it '.add_variant' do
|
13
|
+
create_activity.add_item( id: 1, title: 'title', quantity: 1, currency: 'EUR' )
|
14
|
+
create_activity.items.first.add_variant( title: 'title' )
|
15
|
+
end
|
16
|
+
it '.add_metadata' do
|
17
|
+
create_activity.add_item( id: 1, title: 'title', quantity: 1, currency: 'EUR' )
|
18
|
+
create_activity.items.first.add_metadata( name: 'custom', value: 'value' )
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'SHIPPING_STATUS_CHANGED' do
|
4
|
+
|
5
|
+
subject(:create_activity) { ACTIVITIES_FACTORY::SHIPPING_STATUS_CHANGED.klass.new( orderId: '11111', status: 'AWAITING_SHIPMENT') }
|
6
|
+
|
7
|
+
it '.add_item' do
|
8
|
+
create_activity.add_item( id: 1, title: 'title', quantity: 1, currency: 'EUR' )
|
9
|
+
end
|
10
|
+
end
|