constantcontact 1.1.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +2 -2
- data/constantcontact.gemspec +1 -1
- data/lib/constantcontact.rb +15 -2
- data/lib/constantcontact/api.rb +164 -21
- data/lib/constantcontact/components/event_spot/contact.rb +5 -5
- data/lib/constantcontact/components/event_spot/event.rb +28 -22
- data/lib/constantcontact/components/event_spot/event_address.rb +29 -0
- data/lib/constantcontact/components/event_spot/{fee.rb → event_fee.rb} +7 -7
- data/lib/constantcontact/components/event_spot/event_item.rb +36 -0
- data/lib/constantcontact/components/event_spot/event_item_attribute.rb +26 -0
- data/lib/constantcontact/components/event_spot/event_track.rb +6 -3
- data/lib/constantcontact/components/event_spot/guest.rb +6 -6
- data/lib/constantcontact/components/event_spot/guest_section.rb +34 -0
- data/lib/constantcontact/components/event_spot/notification_option.rb +2 -2
- data/lib/constantcontact/components/event_spot/online_meeting.rb +28 -0
- data/lib/constantcontact/components/event_spot/payment_address.rb +29 -0
- data/lib/constantcontact/components/event_spot/payment_summary.rb +33 -0
- data/lib/constantcontact/components/event_spot/promocode.rb +25 -0
- data/lib/constantcontact/components/event_spot/registrant.rb +19 -21
- data/lib/constantcontact/components/event_spot/registrant_fee.rb +29 -0
- data/lib/constantcontact/components/event_spot/registrant_order.rb +39 -0
- data/lib/constantcontact/components/event_spot/registrant_promo_code.rb +31 -0
- data/lib/constantcontact/components/event_spot/registrant_promo_code_info.rb +27 -0
- data/lib/constantcontact/components/event_spot/registrant_section.rb +6 -6
- data/lib/constantcontact/components/event_spot/sale_item.rb +15 -13
- data/lib/constantcontact/services/event_spot_service.rb +252 -29
- data/lib/constantcontact/util/config.rb +12 -6
- data/lib/constantcontact/version.rb +1 -1
- data/spec/constantcontact/api_spec.rb +221 -21
- data/spec/constantcontact/services/event_spot_spec.rb +223 -21
- metadata +118 -76
- checksums.yaml +0 -7
- data/lib/constantcontact/components/event_spot/promo_code.rb +0 -26
data/README.md
CHANGED
@@ -9,7 +9,7 @@ Installation
|
|
9
9
|
====
|
10
10
|
Via bundler:
|
11
11
|
```ruby
|
12
|
-
gem 'constantcontact', '~> 1.
|
12
|
+
gem 'constantcontact', '~> 1.2.0'
|
13
13
|
```
|
14
14
|
Otherwise:
|
15
15
|
```bash
|
@@ -127,4 +127,4 @@ Create a my_view.erb with the following code:
|
|
127
127
|
|
128
128
|
The first time you access the action in browser you should see the "Click to authorize" link.
|
129
129
|
Follow the link, go through all the Constant Contact steps required
|
130
|
-
and then you will be redirected back to your action and you should see the list of contacts.
|
130
|
+
and then you will be redirected back to your action and you should see the list of contacts.
|
data/constantcontact.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "constantcontact"
|
8
|
-
s.version = '1.
|
8
|
+
s.version = '1.2.0'
|
9
9
|
s.platform = Gem::Platform::RUBY
|
10
10
|
s.authors = ["ConstantContact"]
|
11
11
|
s.homepage = "http://www.constantcontact.com"
|
data/lib/constantcontact.rb
CHANGED
@@ -49,8 +49,11 @@ module ConstantContact
|
|
49
49
|
autoload :TrackingSummary, 'constantcontact/components/tracking/tracking_summary'
|
50
50
|
autoload :VerifiedEmailAddress, 'constantcontact/components/account/verified_email_address'
|
51
51
|
autoload :Event, 'constantcontact/components/event_spot/event'
|
52
|
-
autoload :
|
52
|
+
autoload :EventFee, 'constantcontact/components/event_spot/event_fee'
|
53
53
|
autoload :Registrant, 'constantcontact/components/event_spot/registrant'
|
54
|
+
autoload :EventItem, 'constantcontact/components/event_spot/event_item'
|
55
|
+
autoload :EventItemAttribute, 'constantcontact/components/event_spot/event_item_attribute'
|
56
|
+
autoload :Promocode, 'constantcontact/components/event_spot/promocode'
|
54
57
|
autoload :LibrarySummary, 'constantcontact/components/library/info/library_summary'
|
55
58
|
autoload :UploadStatus, 'constantcontact/components/library/info/upload_status'
|
56
59
|
autoload :MoveResults, 'constantcontact/components/library/info/move_results'
|
@@ -58,12 +61,22 @@ module ConstantContact
|
|
58
61
|
autoload :LibraryFile, 'constantcontact/components/library/file/library_file'
|
59
62
|
|
60
63
|
module EventSpot
|
64
|
+
autoload :EventAddress, 'constantcontact/components/event_spot/event_address'
|
61
65
|
autoload :Contact, 'constantcontact/components/event_spot/contact'
|
62
66
|
autoload :NotificationOption, 'constantcontact/components/event_spot/notification_option'
|
67
|
+
autoload :OnlineMeeting, 'constantcontact/components/event_spot/online_meeting'
|
68
|
+
autoload :PaymentAddress, 'constantcontact/components/event_spot/payment_address'
|
69
|
+
autoload :PaymentSummary, 'constantcontact/components/event_spot/payment_summary'
|
63
70
|
autoload :Guest, 'constantcontact/components/event_spot/guest'
|
71
|
+
autoload :GuestSection, 'constantcontact/components/event_spot/guest_section'
|
64
72
|
autoload :EventTrack, 'constantcontact/components/event_spot/event_track'
|
65
|
-
autoload :
|
73
|
+
autoload :RegistrantFee, 'constantcontact/components/event_spot/registrant_fee'
|
66
74
|
autoload :RegistrantField, 'constantcontact/components/event_spot/registrant_field'
|
75
|
+
autoload :RegistrantOrder, 'constantcontact/components/event_spot/registrant_order'
|
76
|
+
autoload :RegistrantPromoCode, 'constantcontact/components/event_spot/registrant_promo_code'
|
77
|
+
autoload :RegistrantPromoCodeInfo, 'constantcontact/components/event_spot/registrant_promo_code_info'
|
78
|
+
autoload :RegistrantSection, 'constantcontact/components/event_spot/registrant_section'
|
79
|
+
autoload :SaleItem, 'constantcontact/components/event_spot/sale_item'
|
67
80
|
end
|
68
81
|
end
|
69
82
|
|
data/lib/constantcontact/api.rb
CHANGED
@@ -621,25 +621,16 @@ module ConstantContact
|
|
621
621
|
# Cancel an event
|
622
622
|
# @param [String] access_token - Constant Contact OAuth2 access token
|
623
623
|
# @param [Event] event - Event to cancel
|
624
|
-
# @return [
|
624
|
+
# @return [Event]
|
625
625
|
def cancel_event(access_token, event)
|
626
626
|
Services::EventSpotService.cancel_event(access_token, event)
|
627
627
|
end
|
628
628
|
|
629
629
|
|
630
|
-
# Delete an event
|
631
|
-
# @param [String] access_token - Constant Contact OAuth2 access token
|
632
|
-
# @param [Event] event - Event fee corresponds to
|
633
|
-
# @return [Activity]
|
634
|
-
def delete_event(access_token, event)
|
635
|
-
Services::EventSpotService.delete_event(access_token, event)
|
636
|
-
end
|
637
|
-
|
638
|
-
|
639
630
|
# Get a list of event fees
|
640
631
|
# @param [String] access_token - Constant Contact OAuth2 access token
|
641
632
|
# @param [Event] event - Event to get fees of
|
642
|
-
# @return [
|
633
|
+
# @return [<Array>EventFee]
|
643
634
|
def get_event_fees(access_token, event)
|
644
635
|
Services::EventSpotService.get_fees(access_token, event)
|
645
636
|
end
|
@@ -648,8 +639,8 @@ module ConstantContact
|
|
648
639
|
# Get an event fee
|
649
640
|
# @param [String] access_token - Constant Contact OAuth2 access token
|
650
641
|
# @param [Event] event - Event fee corresponds to
|
651
|
-
# @param [
|
652
|
-
# @return [
|
642
|
+
# @param [EventFee] fee - Fee to retrieve
|
643
|
+
# @return [EventFee]
|
653
644
|
def get_event_fee(access_token, event, fee)
|
654
645
|
Services::EventSpotService.get_fee(access_token, event, fee)
|
655
646
|
end
|
@@ -659,7 +650,7 @@ module ConstantContact
|
|
659
650
|
# @param [String] access_token - Constant Contact OAuth2 access token
|
660
651
|
# @param [Event] event - Event fee corresponds to
|
661
652
|
# @param [Hash] fee - Fee details
|
662
|
-
# @return [
|
653
|
+
# @return [EventFee]
|
663
654
|
def add_event_fee(access_token, event, fee)
|
664
655
|
Services::EventSpotService.add_fee(access_token, event, fee)
|
665
656
|
end
|
@@ -668,8 +659,8 @@ module ConstantContact
|
|
668
659
|
# Update an event fee
|
669
660
|
# @param [String] access_token - Constant Contact OAuth2 access token
|
670
661
|
# @param [Event] event - Event fee corresponds to
|
671
|
-
# @param [
|
672
|
-
# @return [
|
662
|
+
# @param [EventFee] fee - Fee details
|
663
|
+
# @return [EventFee]
|
673
664
|
def update_event_fee(access_token, event, fee)
|
674
665
|
Services::EventSpotService.update_fee(access_token, event, fee)
|
675
666
|
end
|
@@ -678,17 +669,17 @@ module ConstantContact
|
|
678
669
|
# Delete an event fee
|
679
670
|
# @param [String] access_token - Constant Contact OAuth2 access token
|
680
671
|
# @param [Event] event - Event fee corresponds to
|
681
|
-
# @param [
|
682
|
-
# @return [
|
672
|
+
# @param [EventFee] fee - Fee details
|
673
|
+
# @return [Boolean]
|
683
674
|
def delete_event_fee(access_token, event, fee)
|
684
675
|
Services::EventSpotService.delete_fee(access_token, event, fee)
|
685
676
|
end
|
686
677
|
|
687
678
|
|
688
|
-
# Get a
|
679
|
+
# Get a set of event registrants
|
689
680
|
# @param [String] access_token - Constant Contact OAuth2 access token
|
690
681
|
# @param [Event] event - Event fee corresponds to
|
691
|
-
# @return [
|
682
|
+
# @return [ResultSet<Registrant>]
|
692
683
|
def get_event_registrants(access_token, event)
|
693
684
|
Services::EventSpotService.get_registrants(access_token, event)
|
694
685
|
end
|
@@ -698,12 +689,164 @@ module ConstantContact
|
|
698
689
|
# @param [String] access_token - Constant Contact OAuth2 access token
|
699
690
|
# @param [Event] event - Event registrant corresponds to
|
700
691
|
# @param [Registrant] registrant - registrant details
|
701
|
-
# @return [
|
692
|
+
# @return [Registrant]
|
702
693
|
def get_event_registrant(access_token, event, registrant)
|
703
694
|
Services::EventSpotService.get_registrant(access_token, event, registrant)
|
704
695
|
end
|
705
696
|
|
706
697
|
|
698
|
+
# Get an array of event items for an individual event
|
699
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
700
|
+
# @param [Integer] event_id - event id to retrieve items for
|
701
|
+
# @return [Array<EventItem>]
|
702
|
+
def get_event_items(access_token, event_id)
|
703
|
+
Services::EventSpotService.get_event_items(access_token, event_id)
|
704
|
+
end
|
705
|
+
|
706
|
+
|
707
|
+
# Get an individual event item
|
708
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
709
|
+
# @param [Integer] event_id - id of event to retrieve item for
|
710
|
+
# @param [Integer] item_id - id of item to be retrieved
|
711
|
+
# @return [EventItem]
|
712
|
+
def get_event_item(access_token, event_id, item_id)
|
713
|
+
Services::EventSpotService.get_event_item(access_token, event_id, item_id)
|
714
|
+
end
|
715
|
+
|
716
|
+
|
717
|
+
# Create a new event item for an event
|
718
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
719
|
+
# @param [Integer] event_id - id of event to be associated with the event item
|
720
|
+
# @param [EventItem] event_item - event item to be created
|
721
|
+
# @return [EventItem]
|
722
|
+
def add_event_item(access_token, event_id, event_item)
|
723
|
+
Services::EventSpotService.add_event_item(access_token, event_id, event_item)
|
724
|
+
end
|
725
|
+
|
726
|
+
|
727
|
+
# Delete a specific event item for an event
|
728
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
729
|
+
# @param [Integer] event_id - id of event to delete an event item for
|
730
|
+
# @param [Integer] item_id - id of event item to be deleted
|
731
|
+
# @return [Boolean]
|
732
|
+
def delete_event_item(access_token, event_id, item_id)
|
733
|
+
Services::EventSpotService.delete_event_item(access_token, event_id, item_id)
|
734
|
+
end
|
735
|
+
|
736
|
+
|
737
|
+
# Update a specific event item for an event
|
738
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
739
|
+
# @param [Integer] event_id - id of event associated with the event item
|
740
|
+
# @param [EventItem] event_item - event item to be updated
|
741
|
+
# @return [EventItem]
|
742
|
+
def update_event_item(access_token, event_id, event_item)
|
743
|
+
Services::EventSpotService.update_event_item(access_token, event_id, event_item)
|
744
|
+
end
|
745
|
+
|
746
|
+
|
747
|
+
# Get an array of attributes for an individual event item
|
748
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
749
|
+
# @param [Integer] event_id - event id to retrieve item for
|
750
|
+
# @param [Integer] item_id - event item id to retrieve attributes for
|
751
|
+
# @return [Array<EventItemAttribute>]
|
752
|
+
def get_event_item_attributes(access_token, event_id, item_id)
|
753
|
+
Services::EventSpotService.get_event_item_attributes(access_token, event_id, item_id)
|
754
|
+
end
|
755
|
+
|
756
|
+
|
757
|
+
# Get an individual event item attribute
|
758
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
759
|
+
# @param [Integer] event_id - id of event to retrieve item for
|
760
|
+
# @param [Integer] item_id - id of item to retrieve attribute for
|
761
|
+
# @param [Integer] attribute_id - id of attribute to be retrieved
|
762
|
+
# @return [EventItemAttribute]
|
763
|
+
def get_event_item_attribute(access_token, event_id, item_id, attribute_id)
|
764
|
+
Services::EventSpotService.get_event_item_attribute(access_token, event_id, item_id, attribute_id)
|
765
|
+
end
|
766
|
+
|
767
|
+
|
768
|
+
# Create a new event item attribute for an event item
|
769
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
770
|
+
# @param [Integer] event_id - id of event to be associated with the event item attribute
|
771
|
+
# @param [Integer] item_id - id of event item to be associated with the event item attribute
|
772
|
+
# @param [EventItemAttribute] event_item_attribute - event item attribute to be created
|
773
|
+
# @return [EventItemAttribute]
|
774
|
+
def add_event_item_attribute(access_token, event_id, item_id, event_item_attribute)
|
775
|
+
Services::EventSpotService.add_event_item_attribute(access_token, event_id, item_id, event_item_attribute)
|
776
|
+
end
|
777
|
+
|
778
|
+
|
779
|
+
# Delete a specific event item for an event
|
780
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
781
|
+
# @param [Integer] event_id - id of event to delete an event item attribute for
|
782
|
+
# @param [Integer] item_id - id of event item to delete an event item attribute for
|
783
|
+
# @param [Integer] attribute_id - id of attribute to be deleted
|
784
|
+
# @return [Boolean]
|
785
|
+
def delete_event_item_attribute(access_token, event_id, item_id, attribute_id)
|
786
|
+
Services::EventSpotService.delete_event_item_attribute(access_token, event_id, item_id, attribute_id)
|
787
|
+
end
|
788
|
+
|
789
|
+
|
790
|
+
# Update a specific event item attribute for an event item
|
791
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
792
|
+
# @param [Integer] event_id - id of event associated with the event item
|
793
|
+
# @param [Integer] item_id - id of event item associated with the event item attribute
|
794
|
+
# @param [EventItemAttribute] event_item_attribute - event item to be updated
|
795
|
+
# @return [EventItemAttribute]
|
796
|
+
def update_event_item_attribute(access_token, event_id, item_id, event_item_attribute)
|
797
|
+
Services::EventSpotService.update_event_item_attribute(access_token, event_id, item_id, event_item_attribute)
|
798
|
+
end
|
799
|
+
|
800
|
+
|
801
|
+
# Get an array of promocodes for an individual event
|
802
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
803
|
+
# @param [Integer] event_id - event id to retrieve promocodes for
|
804
|
+
# @return [Array<Promocode>]
|
805
|
+
def get_promocodes(access_token, event_id)
|
806
|
+
Services::EventSpotService.get_promocodes(access_token, event_id)
|
807
|
+
end
|
808
|
+
|
809
|
+
|
810
|
+
# Get an individual promocode
|
811
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
812
|
+
# @param [Integer] event_id - id of event to retrieve item for
|
813
|
+
# @param [Integer] promocode_id - id of item to be retrieved
|
814
|
+
# @return [Promocode]
|
815
|
+
def get_promocode(access_token, event_id, promocode_id)
|
816
|
+
Services::EventSpotService.get_promocode(access_token, event_id, promocode_id)
|
817
|
+
end
|
818
|
+
|
819
|
+
|
820
|
+
# Create a new promocode for an event
|
821
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
822
|
+
# @param [Integer] event_id - id of event to be associated with the promocode
|
823
|
+
# @param [Promocode] promocode - promocode to be created
|
824
|
+
# @return [Promocode]
|
825
|
+
def add_promocode(access_token, event_id, promocode)
|
826
|
+
Services::EventSpotService.add_promocode(access_token, event_id, promocode)
|
827
|
+
end
|
828
|
+
|
829
|
+
|
830
|
+
# Delete a specific promocode for an event
|
831
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
832
|
+
# @param [Integer] event_id - id of event to delete a promocode for
|
833
|
+
# @param [Integer] promocode_id - id of promocode to be deleted
|
834
|
+
# @return [Boolean]
|
835
|
+
def delete_promocode(access_token, event_id, promocode_id)
|
836
|
+
Services::EventSpotService.delete_promocode(access_token, event_id, promocode_id)
|
837
|
+
end
|
838
|
+
|
839
|
+
|
840
|
+
# Update a specific promocode for an event
|
841
|
+
# @param [String] access_token - Constant Contact OAuth2 access token
|
842
|
+
# @param [Integer] event_id - id of event associated with the promocode
|
843
|
+
# @param [Promocode] promocode - promocode to be updated
|
844
|
+
# @return [Promocode]
|
845
|
+
def update_promocode(access_token, event_id, promocode)
|
846
|
+
Services::EventSpotService.update_promocode(access_token, event_id, promocode)
|
847
|
+
end
|
848
|
+
|
849
|
+
|
707
850
|
# Retrieve MyLibrary usage information
|
708
851
|
# @param [String] access_token - Constant Contact OAuth2 access token
|
709
852
|
# @return [LibrarySummary]
|
@@ -8,18 +8,18 @@ module ConstantContact
|
|
8
8
|
module Components
|
9
9
|
module EventSpot
|
10
10
|
class Contact < Component
|
11
|
-
attr_accessor :
|
11
|
+
attr_accessor :email_address, :name, :organization_name, :phone_number
|
12
12
|
|
13
|
-
# Factory method to create an event
|
13
|
+
# Factory method to create an event host Contact object from a hash
|
14
14
|
# @param [Hash] props - hash of properties to create object from
|
15
15
|
# @return [Campaign]
|
16
16
|
def self.create(props)
|
17
|
-
|
17
|
+
obj = Contact.new
|
18
18
|
props.each do |key, value|
|
19
19
|
key = key.to_s
|
20
|
-
|
20
|
+
obj.send("#{key}=", value) if obj.respond_to? key
|
21
21
|
end if props
|
22
|
-
|
22
|
+
obj
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -7,57 +7,63 @@
|
|
7
7
|
module ConstantContact
|
8
8
|
module Components
|
9
9
|
class Event < Component
|
10
|
-
attr_accessor :
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
10
|
+
attr_accessor :active_date, :address, :are_registrants_public, :cancelled_date, :contact, :created_date,
|
11
|
+
:currency_type, :deleted_date, :description, :end_date, :google_analytics_key, :google_merchant_id,
|
12
|
+
:id, :is_calendar_displayed, :is_checkin_available, :is_home_page_displayed,
|
13
|
+
:is_listed_in_external_directory, :is_map_displayed, :is_virtual_event, :location, :meta_data_tags,
|
14
|
+
:name, :notification_options, :online_meeting, :payable_to, :payment_address, :payment_options,
|
15
|
+
:paypal_account_email, :registration_url, :start_date, :status, :theme_name, :time_zone_description,
|
16
|
+
:time_zone_id, :title, :total_registered_count, :track_information, :twitter_hash_tag, :type,
|
17
|
+
:updated_date
|
17
18
|
|
18
19
|
# Factory method to create an Event object from a hash
|
19
20
|
# @param [Hash] props - hash of properties to create object from
|
20
|
-
# @return [
|
21
|
+
# @return [Event]
|
21
22
|
def self.create(props)
|
22
|
-
|
23
|
+
obj = Event.new
|
23
24
|
if props
|
24
25
|
props.each do |key, value|
|
25
26
|
key = key.to_s
|
26
27
|
if key == 'address'
|
27
|
-
|
28
|
+
obj.address = Components::EventSpot::EventAddress.create(value)
|
28
29
|
elsif key == 'contact'
|
29
|
-
|
30
|
+
obj.contact = Components::EventSpot::Contact.create(value)
|
30
31
|
elsif key == 'notification_options'
|
31
32
|
value ||= []
|
32
|
-
|
33
|
+
obj.notification_options = value.collect{|option| Components::EventSpot::NotificationOption.create(option) }
|
34
|
+
elsif key == 'online_meeting'
|
35
|
+
obj.online_meeting = Components::EventSpot::OnlineMeeting.create(value)
|
36
|
+
elsif key == 'payment_adress'
|
37
|
+
obj.payment_adress = Components::EventSpot::PaymentAddress.create(value)
|
33
38
|
elsif key == 'track_information'
|
34
39
|
value ||= []
|
35
|
-
|
40
|
+
obj.track_information = Components::EventSpot::EventTrack.create(value)
|
36
41
|
else
|
37
|
-
|
42
|
+
obj.send("#{key}=", value) if obj.respond_to?("#{key}=")
|
38
43
|
end
|
39
44
|
end
|
40
45
|
end
|
41
|
-
|
46
|
+
obj
|
42
47
|
end
|
43
|
-
|
44
|
-
# Factory method to create
|
48
|
+
|
49
|
+
# Factory method to create a summary Event object from a hash
|
45
50
|
# @param [Hash] props - hash of properties to create object from
|
46
|
-
# @return [
|
51
|
+
# @return [Event]
|
47
52
|
def self.create_summary(props)
|
48
|
-
|
53
|
+
obj = Event.new
|
49
54
|
if props
|
50
55
|
props.each do |key, value|
|
51
56
|
key = key.to_s
|
52
57
|
if key == 'address'
|
53
|
-
|
58
|
+
obj.address = Components::EventSpot::EventAddress.create(value)
|
54
59
|
else
|
55
|
-
|
60
|
+
obj.send("#{key}=", value) if obj.respond_to?("#{key}=")
|
56
61
|
end
|
57
62
|
end
|
58
63
|
end
|
59
|
-
|
64
|
+
obj
|
60
65
|
end
|
61
66
|
end
|
67
|
+
|
62
68
|
end
|
63
69
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#
|
2
|
+
# event_address.rb
|
3
|
+
# ConstantContact
|
4
|
+
#
|
5
|
+
# Copyright (c) 2013 Constant Contact. All rights reserved.
|
6
|
+
|
7
|
+
module ConstantContact
|
8
|
+
module Components
|
9
|
+
module EventSpot
|
10
|
+
class EventAddress < Component
|
11
|
+
attr_accessor :city, :country, :country_code, :latitude, :line1, :line2, :line3, :longitude, :postal_code,
|
12
|
+
:state, :state_code
|
13
|
+
|
14
|
+
# Factory method to create an EventAddress object from a json string
|
15
|
+
# @param [Hash] props - properties to create object from
|
16
|
+
# @return [EventAddress]
|
17
|
+
def self.create(props)
|
18
|
+
obj = EventAddress.new
|
19
|
+
if props
|
20
|
+
props.each do |key, value|
|
21
|
+
obj.send("#{key}=", value) if obj.respond_to? key
|
22
|
+
end
|
23
|
+
end
|
24
|
+
obj
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|