fosbury 0.9.2
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.
- data/lib/fosbury/client.rb +165 -0
- data/lib/fosbury.rb +11 -0
- metadata +95 -0
@@ -0,0 +1,165 @@
|
|
1
|
+
require 'rest_client'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Fosbury
|
5
|
+
class Client
|
6
|
+
|
7
|
+
@endpoint
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@endpoint = Fosbury.endpoint || "https://app.fosbury.co/api/v1/"
|
11
|
+
end
|
12
|
+
|
13
|
+
def get_templates
|
14
|
+
get "#{@endpoint}templates"
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_campaigns
|
18
|
+
get "#{@endpoint}campaigns"
|
19
|
+
end
|
20
|
+
|
21
|
+
def get_passes
|
22
|
+
get "#{@endpoint}passes"
|
23
|
+
end
|
24
|
+
|
25
|
+
def get_template id
|
26
|
+
get "#{@endpoint}templates/#{id}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def get_campaign id
|
30
|
+
get "#{@endpoint}campaigns/#{id}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def get_pass id
|
34
|
+
get "#{@endpoint}passes/#{id}"
|
35
|
+
end
|
36
|
+
|
37
|
+
def create_template name, style, options={}
|
38
|
+
options[:name] = name
|
39
|
+
options[:style] = style
|
40
|
+
|
41
|
+
post "#{@endpoint}templates", options
|
42
|
+
end
|
43
|
+
|
44
|
+
def create_campaign template_id, options={}
|
45
|
+
options[:template_id] = template_id
|
46
|
+
post "#{@endpoint}campaigns", options
|
47
|
+
end
|
48
|
+
|
49
|
+
def create_pass campaign_id, options={}
|
50
|
+
raise "Please provide a campaign_id" if campaign_id.nil?
|
51
|
+
options[:campaign_id] = campaign_id
|
52
|
+
post "#{@endpoint}passes", options
|
53
|
+
end
|
54
|
+
|
55
|
+
def update_template template_id, options={}
|
56
|
+
raise "Please provide a template_id" if template_id.nil?
|
57
|
+
put "#{@endpoint}tempates/#{template_id}", options
|
58
|
+
end
|
59
|
+
|
60
|
+
def update_campaign campaign_id, options={}
|
61
|
+
raise "Please provide a campaign_id" if campaign_id.nil?
|
62
|
+
put "#{@endpoint}campaigns/#{campaign_id}", options
|
63
|
+
end
|
64
|
+
|
65
|
+
def update_pass pass_id, options={}
|
66
|
+
put "#{@endpoint}passes/#{pass_id}", options
|
67
|
+
end
|
68
|
+
|
69
|
+
# NOTE: Deprecated: Use update_pass instead, still here for legacy reasons
|
70
|
+
def update pass_id, options={}
|
71
|
+
update_pass(pass_id, options)
|
72
|
+
end
|
73
|
+
|
74
|
+
def delete_template teplate_id
|
75
|
+
delete "#{@endpoint}tempates/#{template_id}"
|
76
|
+
end
|
77
|
+
|
78
|
+
def delete_campaign campaign_id
|
79
|
+
delete "#{@endpoint}campaigns/#{campaign_id}"
|
80
|
+
end
|
81
|
+
|
82
|
+
def delete_pass pass_id
|
83
|
+
delete "#{@endpoint}passes/#{pass_id}"
|
84
|
+
end
|
85
|
+
|
86
|
+
# NOTE: Deprecated: Use push_pass instead, still here for legacy reasons
|
87
|
+
def push pass_id, options={}
|
88
|
+
push_pass(pass_id, options)
|
89
|
+
end
|
90
|
+
|
91
|
+
def push_pass pass_id, options={}
|
92
|
+
put "#{@endpoint}passes/#{pass_id}/push", options
|
93
|
+
end
|
94
|
+
|
95
|
+
def distribute_campaign campaign_id
|
96
|
+
raise "Please provide a campaign_id" if campaign_id.nil?
|
97
|
+
post "#{@endpoint}campaigns/#{campaign_id}/distribute"
|
98
|
+
end
|
99
|
+
|
100
|
+
def get_campaign_locations campaign_id
|
101
|
+
raise "Please provide a campaign_id" if campaign_id.nil?
|
102
|
+
get "#{@endpoint}/campaigns/#{campaign_id}/locations"
|
103
|
+
end
|
104
|
+
|
105
|
+
def create_campaign_location campaign_id, lat, long, name, address=''
|
106
|
+
raise "Please provide a campaign_id" if campaign_id.nil?
|
107
|
+
options = { campaign_id: campaign_id, lat: lat, long: long, name: name, address: address }
|
108
|
+
post "#{@endpoint}campaigns/#{campaign_id}/locations", options
|
109
|
+
end
|
110
|
+
|
111
|
+
def delete_campaign_location campaign_id, location_id
|
112
|
+
raise "Please provide a campaign_id" if campaign_id.nil?
|
113
|
+
raise "Please provide a location_id" if location_id.nil?
|
114
|
+
delete "#{@endpoint}/campaigns/#{campaign_id}/locations/#{location_id}"
|
115
|
+
end
|
116
|
+
|
117
|
+
def get_campaign_backfields campaign_id
|
118
|
+
raise "Please provide a campaign_id" if campaign_id.nil?
|
119
|
+
get "#{@endpoint}/campaigns/#{campaign_id}/backfields"
|
120
|
+
end
|
121
|
+
|
122
|
+
def create_campaign_backfield campaign_id, title, description
|
123
|
+
raise "Please provide a campaign_id" if campaign_id.nil?
|
124
|
+
options = { title: title, description: description }
|
125
|
+
post "#{@endpoint}campaigns/#{campaign_id}/backfields", options
|
126
|
+
end
|
127
|
+
|
128
|
+
def delete_campaign_backfield campaign_id, backfield_id
|
129
|
+
raise "Please provide a campaign_id" if campaign_id.nil?
|
130
|
+
raise "Please provide a backfield_id" if backfield_id.nil?
|
131
|
+
delete "#{@endpoint}/campaigns/#{campaign_id}/backfields/#{location_id}"
|
132
|
+
end
|
133
|
+
|
134
|
+
private
|
135
|
+
|
136
|
+
def get url
|
137
|
+
response = RestClient.get url, get_headers
|
138
|
+
parse(response.to_s)
|
139
|
+
end
|
140
|
+
|
141
|
+
def post url, payload=''
|
142
|
+
response = RestClient.post url, payload, get_headers
|
143
|
+
parse(response.to_s)
|
144
|
+
end
|
145
|
+
|
146
|
+
def put url, payload=''
|
147
|
+
response = RestClient.put url, payload, get_headers
|
148
|
+
parse(response.to_s)
|
149
|
+
end
|
150
|
+
|
151
|
+
def delete url
|
152
|
+
RestClient.delete url, get_headers
|
153
|
+
end
|
154
|
+
|
155
|
+
def parse json_str
|
156
|
+
return nil if json_str.empty?
|
157
|
+
JSON.parse(json_str)
|
158
|
+
end
|
159
|
+
|
160
|
+
def get_headers
|
161
|
+
raise "No authentication token provided. Use Fosbury.authentication_token = 'yourtoken' first" if Fosbury.authentication_token.nil?
|
162
|
+
{'X-Fosbury-Token' => Fosbury.authentication_token}
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
data/lib/fosbury.rb
ADDED
metadata
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: fosbury
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.2
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Willem Spruijt
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-07-08 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rest-client
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.6.7
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.6.7
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: activesupport
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 3.2.13
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.2.13
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: json
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.8.0
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.8.0
|
62
|
+
description: Fosbury (http://www.fosbury.co) API client for Ruby. Fosbury is a platform
|
63
|
+
to create and manage iOS Passbook campaigns.
|
64
|
+
email: willem@fosbury.co
|
65
|
+
executables: []
|
66
|
+
extensions: []
|
67
|
+
extra_rdoc_files: []
|
68
|
+
files:
|
69
|
+
- lib/fosbury.rb
|
70
|
+
- lib/fosbury/client.rb
|
71
|
+
homepage: http://rubygems.org/gems/fosbury
|
72
|
+
licenses: []
|
73
|
+
post_install_message:
|
74
|
+
rdoc_options: []
|
75
|
+
require_paths:
|
76
|
+
- lib
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
+
none: false
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
requirements: []
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 1.8.25
|
92
|
+
signing_key:
|
93
|
+
specification_version: 3
|
94
|
+
summary: Fosbury API client
|
95
|
+
test_files: []
|