action_kit_api 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
@@ -20,7 +20,7 @@ module ActionKitApi
|
|
20
20
|
def save
|
21
21
|
class_name = self.class.to_s.split("::").last
|
22
22
|
|
23
|
-
raise MissingRequiredAttributeException
|
23
|
+
raise MissingRequiredAttributeException unless self.valid?
|
24
24
|
|
25
25
|
attrs_hash = self.to_hash
|
26
26
|
attrs_hash.delete_if do |k, v|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'action_kit_api'
|
2
|
+
|
3
|
+
module ActionKitApi
|
4
|
+
class Event < ApiDataModel
|
5
|
+
include Searchable
|
6
|
+
|
7
|
+
# Required
|
8
|
+
attr_accessor :id, :campaign, :creator, :title
|
9
|
+
|
10
|
+
# Other/Active
|
11
|
+
attr_accessor :address1, :address2, :attendee_count, :city, :country,
|
12
|
+
:directions, :ends_at, :host_is_confirmed, :is_approved,
|
13
|
+
:is_full, is_in_past, :is_open_for_signup, :is_private,
|
14
|
+
:latitude, :longitude, :max_attendees, :note_to_attendees,
|
15
|
+
:notes, :phone, :plus4, :postal, :public_description, :region,
|
16
|
+
:starts_at, :state, :status, :status_summary, :venue, :zip
|
17
|
+
|
18
|
+
def initialize(*args)
|
19
|
+
@required_attrs = [:campaign, :creator, :title]
|
20
|
+
@read_only_attrs =[:attendee_count]
|
21
|
+
|
22
|
+
super
|
23
|
+
end
|
24
|
+
|
25
|
+
def cancel
|
26
|
+
raise "Can't cancel unsaved Event" if self.id.nil?
|
27
|
+
|
28
|
+
status "cancelled"
|
29
|
+
save
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'action_kit_api'
|
2
|
+
|
3
|
+
module ActionKitApi
|
4
|
+
class EventCampaign < ApiDataModel
|
5
|
+
include Searchable
|
6
|
+
|
7
|
+
# Required
|
8
|
+
attr_accessor :id, :name, :title
|
9
|
+
|
10
|
+
# Other/Active
|
11
|
+
attr_accessor :allow_private, :default_event_size, :default_title,
|
12
|
+
:max_event_size, :public_create_page,
|
13
|
+
:public_search_page, :require_email_confirmation,
|
14
|
+
:require_staff_approval, :show_address1,
|
15
|
+
:show_public_description, :show_state, :show_title,
|
16
|
+
:show_venue, :show_zip, :starts_at, :use_start_date,
|
17
|
+
:use_start_time, :use_title
|
18
|
+
|
19
|
+
def initialize(*args)
|
20
|
+
@required_attrs = [:name, :title]
|
21
|
+
|
22
|
+
super
|
23
|
+
|
24
|
+
@default_title ||= @title
|
25
|
+
@default_event_size ||= 35
|
26
|
+
@show_address1 ||= true
|
27
|
+
end
|
28
|
+
|
29
|
+
def create_event(*args)
|
30
|
+
raise "EventCampaign needs to be saved before Event creation" if self.id.nil?
|
31
|
+
|
32
|
+
args[0][:campaign] = self.id
|
33
|
+
Event.new(args)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Uses public_search so is subject those limitations
|
37
|
+
def find_local_events(zip, radius)
|
38
|
+
self.public_search(:zip => zip, :radius => radius)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Will not return private events, events that are full, deleted, or in the past
|
42
|
+
# and doesn't return extra fields
|
43
|
+
def public_search(*args)
|
44
|
+
args[0][:campaign] ||= self.id
|
45
|
+
results = ActionKitApi.connection.call("EventCampaign.public_search", args)
|
46
|
+
|
47
|
+
results.map do |r|
|
48
|
+
Event.new(r)
|
49
|
+
end
|
50
|
+
|
51
|
+
results
|
52
|
+
end
|
53
|
+
|
54
|
+
def stats
|
55
|
+
raise "EventCampaign needs to be saved before retrieving stats" if self.id.nil?
|
56
|
+
|
57
|
+
ActionKitApi.connection.call("EventCampaign.stats", {:id => self.id})
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/action_kit_api.rb
CHANGED
@@ -8,6 +8,8 @@ require "action_kit_api/data_model"
|
|
8
8
|
require "action_kit_api/user"
|
9
9
|
require "action_kit_api/page"
|
10
10
|
require "action_kit_api/action"
|
11
|
+
require "action_kit_api/event"
|
12
|
+
require "action_kit_api/event_campaign"
|
11
13
|
|
12
14
|
# Page types
|
13
15
|
require "action_kit_api/page_types/petition"
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
- 2
|
8
7
|
- 3
|
9
|
-
|
8
|
+
- 0
|
9
|
+
version: 0.3.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Sam Stelfox
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2012-03-
|
17
|
+
date: 2012-03-13 00:00:00 -04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -70,6 +70,8 @@ files:
|
|
70
70
|
- lib/action_kit_api/actionkit_ca_chain.pem
|
71
71
|
- lib/action_kit_api/connection.rb
|
72
72
|
- lib/action_kit_api/data_model.rb
|
73
|
+
- lib/action_kit_api/event.rb
|
74
|
+
- lib/action_kit_api/event_campaign.rb
|
73
75
|
- lib/action_kit_api/page.rb
|
74
76
|
- lib/action_kit_api/page_types/import.rb
|
75
77
|
- lib/action_kit_api/page_types/petition.rb
|