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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +38 -11
  4. data/e2e/activities_api_spec.rb +97 -3
  5. data/e2e/contacts_api_spec.rb +74 -28
  6. data/e2e/e2e_helper.rb +7 -3
  7. data/e2e/redirects_api_spec.rb +7 -0
  8. data/e2e/sites_api_spec.rb +11 -0
  9. data/lib/hive/activities/contact/contact_create_activity.rb +1 -11
  10. data/lib/hive/activities/contact/contact_form_activity.rb +2 -2
  11. data/lib/hive/activities/contact/subscription_form_activity.rb +38 -0
  12. data/lib/hive/activities/conversion/conversion_complete_activity.rb +1 -1
  13. data/lib/hive/activities/e_commerce/cart_add_activity.rb +55 -0
  14. data/lib/hive/activities/e_commerce/cart_checkout_activity.rb +18 -0
  15. data/lib/hive/activities/e_commerce/cart_remove_activity.rb +22 -0
  16. data/lib/hive/activities/e_commerce/purchase_activity.rb +17 -1
  17. data/lib/hive/activities/factory.rb +11 -21
  18. data/lib/hive/activities/hotels/hotels_cancel_activity.rb +1 -1
  19. data/lib/hive/activities/hotels/hotels_confirmation_activity.rb +1 -1
  20. data/lib/hive/activities/hotels/hotels_purchase_activity.rb +1 -1
  21. data/lib/hive/activities/hotels/hotels_purchase_failed_activity.rb +1 -1
  22. data/lib/hive/activities/messaging/send_activity.rb +1 -1
  23. data/lib/hive/activities/music/album_fan_activity.rb +1 -1
  24. data/lib/hive/activities/music/album_played_activity.rb +1 -1
  25. data/lib/hive/activities/music/album_share_activity.rb +2 -2
  26. data/lib/hive/activities/music/track_lyrics_activity.rb +1 -1
  27. data/lib/hive/activities/music/track_play_activity.rb +1 -1
  28. data/lib/hive/activities/music/track_played_activity.rb +1 -1
  29. data/lib/hive/activities/music/track_share_activity.rb +2 -2
  30. data/lib/hive/activities/music/track_skipped_activity.rb +1 -1
  31. data/lib/hive/activities/scheduler/scheduler_appointment_activity.rb +12 -1
  32. data/lib/hive/activities/shipping/shipping_delivered_activity.rb +34 -0
  33. data/lib/hive/activities/shipping/shipping_shipped_activity.rb +109 -0
  34. data/lib/hive/activities/shipping/shipping_status_change_activity.rb +51 -0
  35. data/lib/hive/activities/shipping/shipping_status_changed_activity.rb +51 -0
  36. data/lib/hive/redirect.rb +19 -0
  37. data/lib/hive/rest/api.rb +4 -0
  38. data/lib/hive/rest/contacts.rb +2 -4
  39. data/lib/hive/rest/redirects.rb +13 -0
  40. data/lib/hive/rest/sites.rb +17 -0
  41. data/lib/hive/site.rb +33 -0
  42. data/lib/hive/version.rb +3 -3
  43. data/spec/hive/activities/contact/subscription_form_activity_spec.rb +15 -0
  44. data/spec/hive/activities/e_commerce/purchase_activity_spec.rb +4 -0
  45. data/spec/hive/activities/factory_spec.rb +16 -0
  46. data/spec/hive/activities/shipping/shipping_delivered_acitivty_spec.rb +10 -0
  47. data/spec/hive/activities/shipping/shipping_shipped_acitivty_spec.rb +21 -0
  48. data/spec/hive/activities/shipping/shipping_status_changed_acitivty_spec.rb +10 -0
  49. data/spec/hive/rest/contacts_spec.rb +10 -9
  50. data/spec/hive/rest/redirects_spec.rb +12 -0
  51. data/spec/hive/rest/sites_spec.rb +17 -0
  52. metadata +30 -2
@@ -0,0 +1,38 @@
1
+ # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
+ # Generated on 2015-02-19T18:01:11.027Z
3
+
4
+ require 'hashie'
5
+ require 'hive/extensions/hashie_validate_enum'
6
+
7
+ module Hive
8
+ module Activities
9
+ module Contact
10
+ class Name < Hashie::Trash
11
+ include Hashie::Extensions::IgnoreUndeclared
12
+
13
+ property :prefix
14
+ property :first
15
+ property :middle
16
+ property :last
17
+ property :suffix
18
+ end
19
+
20
+ class SubscriptionFormActivity < Hashie::Trash
21
+ include Hashie::Extensions::IgnoreUndeclared
22
+ include Hashie::Extensions::Coercion
23
+
24
+ coerce_key :name, Name
25
+ coerce_key :fields, Array[Field]
26
+
27
+ property :email, required: true
28
+ property :name
29
+ property :phone
30
+ property :fields, default: []
31
+
32
+ def add_field(args)
33
+ fields << Field.new(args)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.140Z
2
+ # Generated on 2015-02-19T18:01:11.097Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -0,0 +1,55 @@
1
+ # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
+ # Generated on 2015-02-19T15:36:12.648Z
3
+
4
+ require 'hashie'
5
+ require 'hive/extensions/hashie_validate_enum'
6
+
7
+ module Hive
8
+ module Activities
9
+ module ECommerce
10
+ class Item < Hashie::Trash
11
+ include Hashie::Extensions::IgnoreUndeclared
12
+ include Hashie::Extensions::Coercion
13
+
14
+ coerce_key :media, Media
15
+ coerce_key :variants, Array[Variant]
16
+ coerce_key :categories, Array[String]
17
+ coerce_key :metadata, Array[Metadata]
18
+
19
+ property :id, required: true
20
+ property :sku
21
+ property :title, required: true
22
+ property :quantity, required: true
23
+ property :price
24
+ property :formattedPrice
25
+ property :currency, required: true
26
+ property :productLink
27
+ property :weight
28
+ property :formattedWeight
29
+ property :media
30
+ property :variants, default: []
31
+ property :categories, default: []
32
+ property :metadata, default: []
33
+
34
+ def add_variant(args)
35
+ variants << Variant.new(args)
36
+ end
37
+
38
+ def add_metadata(args)
39
+ metadata << Metadata.new(args)
40
+ end
41
+ end
42
+
43
+ class CartAddActivity < Hashie::Trash
44
+ include Hashie::Extensions::IgnoreUndeclared
45
+ include Hashie::Extensions::Coercion
46
+
47
+ coerce_key :item, Item
48
+
49
+ property :cartId, required: true
50
+ property :storeId
51
+ property :item, required: true
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,18 @@
1
+ # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
+ # Generated on 2015-02-19T15:36:12.681Z
3
+
4
+ require 'hashie'
5
+ require 'hive/extensions/hashie_validate_enum'
6
+
7
+ module Hive
8
+ module Activities
9
+ module ECommerce
10
+ class CartCheckoutActivity < Hashie::Trash
11
+ include Hashie::Extensions::IgnoreUndeclared
12
+
13
+ property :cartId, required: true
14
+ property :storeId
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
+ # Generated on 2015-02-19T15:36:12.671Z
3
+
4
+ require 'hashie'
5
+ require 'hive/extensions/hashie_validate_enum'
6
+
7
+ module Hive
8
+ module Activities
9
+ module ECommerce
10
+ class CartRemoveActivity < Hashie::Trash
11
+ include Hashie::Extensions::IgnoreUndeclared
12
+ include Hashie::Extensions::Coercion
13
+
14
+ coerce_key :item, Item
15
+
16
+ property :cartId, required: true
17
+ property :storeId
18
+ property :item, required: true
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.174Z
2
+ # Generated on 2015-02-19T18:01:11.149Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -20,14 +20,24 @@ module Hive
20
20
  property :value
21
21
  end
22
22
 
23
+ class Metadata < Hashie::Trash
24
+ include Hashie::Extensions::IgnoreUndeclared
25
+
26
+ property :name, required: true
27
+ property :value, required: true
28
+ end
29
+
23
30
  class Item < Hashie::Trash
24
31
  include Hashie::Extensions::IgnoreUndeclared
25
32
  include Hashie::Extensions::Coercion
26
33
 
27
34
  coerce_key :media, Media
28
35
  coerce_key :variants, Array[Variant]
36
+ coerce_key :categories, Array[String]
37
+ coerce_key :metadata, Array[Metadata]
29
38
 
30
39
  property :id, required: true
40
+ property :type, transform_with: Hashie::Validate.enum(%w(PHYSICAL DIGITAL))
31
41
  property :sku
32
42
  property :title, required: true
33
43
  property :quantity, required: true
@@ -39,10 +49,16 @@ module Hive
39
49
  property :formattedWeight
40
50
  property :media
41
51
  property :variants, default: [], required: true
52
+ property :categories, default: []
53
+ property :metadata, default: []
42
54
 
43
55
  def add_variant(args)
44
56
  variants << Variant.new(args)
45
57
  end
58
+
59
+ def add_metadata(args)
60
+ metadata << Metadata.new(args)
61
+ end
46
62
  end
47
63
 
48
64
  class Coupon < Hashie::Trash
@@ -1,7 +1,7 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.295Z
3
-
2
+ # Generated on 2015-02-19T18:01:11.499Z
4
3
  require 'hive/activities/contact/contact_form_activity'
4
+ require 'hive/activities/contact/subscription_form_activity'
5
5
  require 'hive/activities/contact/contact_create_activity'
6
6
  require 'hive/activities/conversion/conversion_complete_activity'
7
7
  require 'hive/activities/e_commerce/purchase_activity'
@@ -19,49 +19,39 @@ require 'hive/activities/hotels/hotels_cancel_activity'
19
19
  require 'hive/activities/hotels/hotels_purchase_activity'
20
20
  require 'hive/activities/hotels/hotels_purchase_failed_activity'
21
21
  require 'hive/activities/scheduler/scheduler_appointment_activity'
22
+ require 'hive/activities/shipping/shipping_shipped_activity'
23
+ require 'hive/activities/shipping/shipping_delivered_activity'
24
+ require 'hive/activities/shipping/shipping_status_changed_activity'
22
25
 
23
26
  module Hive
24
27
  module Activities
25
28
  ActivityType = Struct.new(:klass, :type) do
26
29
  end
27
30
 
28
- CONTACT_CONTACT_FORM = ActivityType.new(Contact::FormActivity, 'contact/contact-form')
29
-
31
+ CONTACT_CONTACT_FORM = ActivityType.new(Contact::ContactFormActivity, 'contact/contact-form')
32
+ CONTACT_SUBSCRIPTION_FORM = ActivityType.new(Contact::SubscriptionFormActivity, 'contact/subscription-form')
30
33
  CONTACTS_CREATE = ActivityType.new(Contact::CreateActivity, 'contacts/create')
31
-
32
34
  CONVERSION_COMPLETE = ActivityType.new(Conversion::CompleteActivity, 'conversion/complete')
33
-
34
35
  E_COMMERCE_PURCHASE = ActivityType.new(ECommerce::PurchaseActivity, 'e_commerce/purchase')
35
-
36
36
  MESSAGING_SEND = ActivityType.new(Messaging::SendActivity, 'messaging/send')
37
-
38
37
  MUSIC_ALBUM_PLAYED = ActivityType.new(Music::PlayedActivity, 'music/album-played')
39
-
40
38
  MUSIC_ALBUM_FAN = ActivityType.new(Music::FanActivity, 'music/album-fan')
41
-
42
39
  MUSIC_ALBUM_SHARE = ActivityType.new(Music::ShareActivity, 'music/album-share')
43
-
44
40
  MUSIC_TRACK_LYRICS = ActivityType.new(Music::LyricsActivity, 'music/track-lyrics')
45
-
46
41
  MUSIC_TRACK_PLAY = ActivityType.new(Music::TrackPlayActivity, 'music/track-play')
47
-
48
42
  MUSIC_TRACK_PLAYED = ActivityType.new(Music::TrackPlayedActivity, 'music/track-played')
49
-
50
43
  MUSIC_TRACK_SKIP = ActivityType.new(Music::TrackSkippedActivity, 'music/track-skip')
51
-
52
44
  MUSIC_TRACK_SHARE = ActivityType.new(Music::TrackShareActivity, 'music/track-share')
53
-
54
45
  HOTELS_CONFIRMATION = ActivityType.new(Hotels::ConfirmationActivity, 'hotels/confirmation')
55
-
56
46
  HOTELS_CANCEL = ActivityType.new(Hotels::CancelActivity, 'hotels/cancel')
57
-
58
47
  HOTELS_PURCHASE = ActivityType.new(Hotels::PurchaseActivity, 'hotels/purchase')
59
-
60
48
  HOTELS_PURCHASE_FAILED = ActivityType.new(Hotels::PurchaseFailedActivity, 'hotels/purchase-failed')
61
-
62
49
  SCHEDULER_APPOINTMENT = ActivityType.new(Scheduler::AppointmentActivity, 'scheduler/appointment')
50
+ SHIPPING_SHIPPED = ActivityType.new(Shipping::ShippedActivity, 'shipping/shipped')
51
+ SHIPPING_DELIVERED = ActivityType.new(Shipping::DeliveredActivity, 'shipping/delivered')
52
+ SHIPPING_STATUS_CHANGED = ActivityType.new(Shipping::StatusChangedActivity, 'shipping/status-changed')
63
53
 
64
- TYPES = [CONTACT_CONTACT_FORM, CONTACTS_CREATE, CONVERSION_COMPLETE, E_COMMERCE_PURCHASE, MESSAGING_SEND, MUSIC_ALBUM_PLAYED, MUSIC_ALBUM_FAN, MUSIC_ALBUM_SHARE, MUSIC_TRACK_LYRICS, MUSIC_TRACK_PLAY, MUSIC_TRACK_PLAYED, MUSIC_TRACK_SKIP, MUSIC_TRACK_SHARE, HOTELS_CONFIRMATION, HOTELS_CANCEL, HOTELS_PURCHASE, HOTELS_PURCHASE_FAILED, SCHEDULER_APPOINTMENT]
54
+ TYPES = [CONTACT_CONTACT_FORM, CONTACT_SUBSCRIPTION_FORM, CONTACTS_CREATE, CONVERSION_COMPLETE, E_COMMERCE_PURCHASE, MESSAGING_SEND, MUSIC_ALBUM_PLAYED, MUSIC_ALBUM_FAN, MUSIC_ALBUM_SHARE, MUSIC_TRACK_LYRICS, MUSIC_TRACK_PLAY, MUSIC_TRACK_PLAYED, MUSIC_TRACK_SKIP, MUSIC_TRACK_SHARE, HOTELS_CONFIRMATION, HOTELS_CANCEL, HOTELS_PURCHASE, HOTELS_PURCHASE_FAILED, SCHEDULER_APPOINTMENT, SHIPPING_SHIPPED, SHIPPING_DELIVERED, SHIPPING_STATUS_CHANGED]
65
55
 
66
56
  module_function
67
57
 
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.261Z
2
+ # Generated on 2015-02-19T18:01:11.350Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.247Z
2
+ # Generated on 2015-02-19T18:01:11.316Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.275Z
2
+ # Generated on 2015-02-19T18:01:11.380Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.288Z
2
+ # Generated on 2015-02-19T18:01:11.413Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.189Z
2
+ # Generated on 2015-02-19T18:01:11.169Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.196Z
2
+ # Generated on 2015-02-19T18:01:11.191Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.192Z
2
+ # Generated on 2015-02-19T18:01:11.180Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.200Z
2
+ # Generated on 2015-02-19T18:01:11.205Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -16,7 +16,7 @@ module Hive
16
16
 
17
17
  property :album, required: true
18
18
  property :artist
19
- property :sharedTo, required: true, transform_with: Hashie::Validate.enum(%w(FACEBOOK GOOGLE_PLUS TWITTER))
19
+ property :sharedTo, required: true, transform_with: Hashie::Validate.enum(%w(FACEBOOK GOOGLE_PLUS TWITTER BLOGGER TUMBLR))
20
20
  end
21
21
  end
22
22
  end
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.208Z
2
+ # Generated on 2015-02-19T18:01:11.223Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.215Z
2
+ # Generated on 2015-02-19T18:01:11.238Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.222Z
2
+ # Generated on 2015-02-19T18:01:11.256Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.236Z
2
+ # Generated on 2015-02-19T18:01:11.283Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -18,7 +18,7 @@ module Hive
18
18
  property :track, required: true
19
19
  property :album
20
20
  property :artist
21
- property :sharedTo, required: true, transform_with: Hashie::Validate.enum(%w(FACEBOOK GOOGLE_PLUS TWITTER))
21
+ property :sharedTo, required: true, transform_with: Hashie::Validate.enum(%w(FACEBOOK GOOGLE_PLUS TWITTER BLOGGER TUMBLR))
22
22
  end
23
23
  end
24
24
  end
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.230Z
2
+ # Generated on 2015-02-19T18:01:11.271Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -1,5 +1,5 @@
1
1
  # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
- # Generated on 2014-10-01T07:31:22.293Z
2
+ # Generated on 2015-02-19T18:01:11.432Z
3
3
 
4
4
  require 'hashie'
5
5
  require 'hive/extensions/hashie_validate_enum'
@@ -7,6 +7,14 @@ require 'hive/extensions/hashie_validate_enum'
7
7
  module Hive
8
8
  module Activities
9
9
  module Scheduler
10
+ class Price < Hashie::Trash
11
+ include Hashie::Extensions::IgnoreUndeclared
12
+
13
+ property :price
14
+ property :formattedPrice
15
+ property :currency, required: true
16
+ end
17
+
10
18
  class Location < Hashie::Trash
11
19
  include Hashie::Extensions::IgnoreUndeclared
12
20
 
@@ -54,12 +62,15 @@ module Hive
54
62
  include Hashie::Extensions::IgnoreUndeclared
55
63
  include Hashie::Extensions::Coercion
56
64
 
65
+ coerce_key :price, Price
57
66
  coerce_key :location, Location
58
67
  coerce_key :time, Time
59
68
  coerce_key :attendees, Array[Attendee]
60
69
 
61
70
  property :title, required: true
62
71
  property :description, required: true
72
+ property :infoLink
73
+ property :price
63
74
  property :location
64
75
  property :time
65
76
  property :attendees, default: []
@@ -0,0 +1,34 @@
1
+ # THIS IS A GENERATED FILE, DO NOT EDIT THIS
2
+ # Generated on 2015-02-19T18:01:11.470Z
3
+
4
+ require 'hashie'
5
+ require 'hive/extensions/hashie_validate_enum'
6
+
7
+ module Hive
8
+ module Activities
9
+ module Shipping
10
+ class DeliveredActivity < Hashie::Trash
11
+ include Hashie::Extensions::IgnoreUndeclared
12
+ include Hashie::Extensions::Coercion
13
+
14
+ class ShippingDetail < Hashie::Trash
15
+ include Hashie::Extensions::IgnoreUndeclared
16
+
17
+ property :tracking
18
+ end
19
+
20
+ coerce_key :items, Array[Item]
21
+ coerce_key :shippingDetails, ShippingDetail
22
+
23
+ property :orderId, required: true
24
+ property :items, default: [], required: true
25
+ property :shippingDetails
26
+ property :note
27
+
28
+ def add_item(args)
29
+ items << Item.new(args)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end