action_kit_api 0.3.9 → 0.3.10

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.
@@ -5,7 +5,7 @@ module ActionKitApi
5
5
  include Searchable
6
6
 
7
7
  # Required
8
- attr_accessor :id, :campaign_id, :creator_id, :title
8
+ attr_accessor :id, :campaign_id, :creator_id
9
9
 
10
10
  # Other/Active
11
11
  attr_accessor :address1, :address2, :attendee_count, :city, :country,
@@ -13,10 +13,11 @@ module ActionKitApi
13
13
  :is_full, :is_in_past, :is_open_for_signup, :is_private,
14
14
  :latitude, :longitude, :max_attendees, :note_to_attendees,
15
15
  :notes, :phone, :plus4, :postal, :public_description, :region,
16
- :starts_at, :state, :status, :status_summary, :venue, :zip
16
+ :starts_at, :state, :status, :status_summary, :title, :venue,
17
+ :zip
17
18
 
18
19
  def initialize(*args)
19
- @required_attrs = [:campaign_id, :creator_id, :title]
20
+ @required_attrs = [:campaign_id, :creator_id]
20
21
  @read_only_attrs = [:attendee_count]
21
22
 
22
23
  super
@@ -26,15 +26,38 @@ module ActionKitApi
26
26
  @show_address1 ||= true
27
27
  end
28
28
 
29
- def create_event(*args)
30
- raise "EventCampaign needs to be saved before Event creation" if self.id.nil?
29
+ # After creating a new event campaign we need to create the
30
+ # associated signup and hosting pages. These will follow the
31
+ # ActionKit convention to prevent them from getting wise. This
32
+ # is so we don't have to use that sketchy part of their API
33
+ def after_save
34
+ # Only continue if we have a valid id
35
+ if self.id.nil?
36
+ return
37
+ end
31
38
 
32
- args[0][:campaign] = self.id
33
- args[0][:title] ||= self.default_title
39
+ signup_page_name = "#{self.name}_signup"
40
+ create_page_name = "#{self.name}_create"
34
41
 
35
- ActionKitApi::Event.new(*args)
42
+ if ActionKitApi::EventSignupPage.find_by_name(signup_page_name).nil?
43
+ signup_page = ActionKitApi::EventSignupPage.new(:name => signup_page_name, :title => "#{self.title} - Attend", :campaign_id => self.id)
44
+ signup_page.save
45
+ end
46
+
47
+ if ActionKitApi::EventCreatePage.find_by_name(create_page_name).nil?
48
+ create_page = ActionKitApi::EventCreatePage.new(:name => create_page_name, :title => "#{self.title} - Host", :campaign_id => self.id)
49
+ create_page.save
50
+ end
36
51
  end
37
52
 
53
+ # def create_event(*args)
54
+ # raise "EventCampaign needs to be saved before Event creation" if self.id.nil?
55
+ #
56
+ # args[0].merge {:campaign_id => self.id}
57
+ #
58
+ # ActionKitApi::Event.new(*args)
59
+ # end
60
+
38
61
  # Uses public_search so is subject those limitations
39
62
  def find_local_events(zip, radius)
40
63
  self.public_search(:zip => zip, :radius => radius)
@@ -12,11 +12,14 @@ module ActionKitApi
12
12
  attr_accessor :id, :name, :title, :type
13
13
 
14
14
  # Other/Active
15
- attr_accessor :goal, :goal_type, :lang, :list, :required_fields,
16
- :status, :tags, :url
15
+ attr_accessor :canonical_url, :custom_fields, :hidden, :hosted_with, :goal,
16
+ :goal_type, :lang, :list, :multilingual_campaign,
17
+ :required_fields, :status, :tags, :url
17
18
 
18
19
  def initialize(*args)
19
- @required_attrs = [:name, :title, :type]
20
+ @required_attrs ||= []
21
+ @required_attrs.concat([:name, :title, :type])
22
+
20
23
  super
21
24
  end
22
25
  end
@@ -0,0 +1,14 @@
1
+ require 'action_kit_api'
2
+
3
+ module ActionKitApi
4
+ class EventCreatePage < Page
5
+ attr_accessor :campaign_id
6
+
7
+ def initialize(*args)
8
+ @type = 'EventCreate'
9
+ @required_attrs = [:campaign_id]
10
+
11
+ super
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ require 'action_kit_api'
2
+
3
+ module ActionKitApi
4
+ class EventSignupPage < Page
5
+ attr_accessor :campaign_id
6
+
7
+ def initialize(*args)
8
+ @type = 'EventSignup'
9
+ @required_attrs = [:campaign_id]
10
+
11
+ super
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,3 @@
1
1
  module ActionKitApi
2
- VERSION = "0.3.9"
2
+ VERSION = "0.3.10"
3
3
  end
@@ -5,17 +5,19 @@ require "action_kit_api/searchable"
5
5
  require "action_kit_api/data_model"
6
6
 
7
7
  # Extensions to the data model for specific information
8
+ require "action_kit_api/event"
9
+ require "action_kit_api/event_campaign"
8
10
  require "action_kit_api/user"
9
11
  require "action_kit_api/page"
10
12
  require "action_kit_api/action"
11
- require "action_kit_api/event"
12
- require "action_kit_api/event_campaign"
13
13
 
14
14
  # Page types
15
+ require "action_kit_api/page_types/event_create"
16
+ require "action_kit_api/page_types/event_signup"
17
+ require "action_kit_api/page_types/import"
15
18
  require "action_kit_api/page_types/petition"
16
19
  require "action_kit_api/page_types/signup"
17
20
  require "action_kit_api/page_types/unsubscribe"
18
- require "action_kit_api/page_types/import"
19
21
 
20
22
  module ActionKitApi
21
23
  @@connection = nil
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 9
9
- version: 0.3.9
8
+ - 10
9
+ version: 0.3.10
10
10
  platform: ruby
11
11
  authors:
12
12
  - Sam Stelfox
@@ -73,6 +73,8 @@ files:
73
73
  - lib/action_kit_api/event.rb
74
74
  - lib/action_kit_api/event_campaign.rb
75
75
  - lib/action_kit_api/page.rb
76
+ - lib/action_kit_api/page_types/event_create.rb
77
+ - lib/action_kit_api/page_types/event_signup.rb
76
78
  - lib/action_kit_api/page_types/import.rb
77
79
  - lib/action_kit_api/page_types/petition.rb
78
80
  - lib/action_kit_api/page_types/signup.rb