crowdtilt 1.0.0 → 1.0.3
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.
- checksums.yaml +9 -9
- data/lib/crowdtilt.rb +2 -108
- data/lib/crowdtilt/api_error.rb +11 -0
- data/lib/crowdtilt/crowdtilt.rb +130 -0
- metadata +8 -11
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzQ0Yjk3OGY3ODk2ZDI4Y2EzMGU4MmE2NjIxYzFmZTIyZjQ0ZjI1Yg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
7
|
-
|
6
|
+
ZTA2OGI3ZWRkYzY1NjVhYmIxMzc2MzQ4ZDJmNjUxNTA1YWQyYjQ5Nw==
|
7
|
+
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZjUxZWI0YWVlNDEyNjJkYzZlODkzZjIyMDg3ZGE0YTM3Zjg2MjMyZGU4MTQ0
|
10
|
+
YTc0MzM0OTkwMTY3YzQ0NWE1ZDQzZjEwYzY1ODU3MzUxNDQ0OWJhNzI5MDRh
|
11
|
+
Y2JhMDM0ZjExZDc3NTI2NWEyNWY5NzdlNWE3NjkwNjNiOTBmYzA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NjZhZmJjN2ZhYTJjOGRiNDZmYjU2ZTE1ODAxY2ViZjUxZjQwZDRhZDBjMTRj
|
14
|
+
OTVmY2UyYjc4YjNiM2U0MGVkODQ0MmMyYmM2NWEwMWQ5NzllZDk2OTE4NjE4
|
15
|
+
MGUzZWViMTQ0YjhhMzViMjlhOGFmNzM0ZGEwZTQ1NmFmMWNkNjE=
|
data/lib/crowdtilt.rb
CHANGED
@@ -1,108 +1,2 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
require 'faraday_middleware'
|
4
|
-
require 'json'
|
5
|
-
|
6
|
-
module Crowdtilt
|
7
|
-
|
8
|
-
class << self
|
9
|
-
|
10
|
-
attr_accessor :api_key, :api_secret, :mode, :base_url, :version
|
11
|
-
|
12
|
-
def configure(params)
|
13
|
-
raise ArgumentError, "You must include both the api_key and api_secret" unless (params.include?(:api_key) && params.include?(:api_secret))
|
14
|
-
@api_key = params[:api_key]
|
15
|
-
@api_secret = params[:api_secret]
|
16
|
-
|
17
|
-
@version = 'v1'
|
18
|
-
|
19
|
-
if params[:mode] == 'production'
|
20
|
-
@mode = 'production'
|
21
|
-
@base_url = 'https://api.crowdtilt.com'
|
22
|
-
else
|
23
|
-
@mode = 'sandbox'
|
24
|
-
@base_url = 'https://api-sandbox.crowdtilt.com'
|
25
|
-
end
|
26
|
-
|
27
|
-
@base_url = params[:base_url] if params[:base_url]
|
28
|
-
@version = params[:version] if params[:version]
|
29
|
-
|
30
|
-
true
|
31
|
-
end
|
32
|
-
|
33
|
-
def get(string)
|
34
|
-
request :get, uri(string)
|
35
|
-
end
|
36
|
-
|
37
|
-
def post(string, params={})
|
38
|
-
request :post, uri(string), params
|
39
|
-
end
|
40
|
-
|
41
|
-
def put(string, params={})
|
42
|
-
request :put, uri(string), params
|
43
|
-
end
|
44
|
-
|
45
|
-
def delete(string)
|
46
|
-
request :delete, uri(string)
|
47
|
-
end
|
48
|
-
|
49
|
-
def get_users()
|
50
|
-
get("/users")['users']
|
51
|
-
end
|
52
|
-
|
53
|
-
def get_user(id)
|
54
|
-
get("/users/#{id}")['user']
|
55
|
-
end
|
56
|
-
|
57
|
-
def create_user(user)
|
58
|
-
post("/users", { :user => user })['user']
|
59
|
-
end
|
60
|
-
|
61
|
-
def update_user(id, user)
|
62
|
-
put("/users/#{id}", { :user => user })['user']
|
63
|
-
end
|
64
|
-
|
65
|
-
private
|
66
|
-
|
67
|
-
def request(method,*args)
|
68
|
-
conn = Faraday.new(:url => @base_url) do |faraday|
|
69
|
-
# faraday.response :logger
|
70
|
-
faraday.request :json
|
71
|
-
faraday.response :json, :content_type => /\bjson$/
|
72
|
-
faraday.use :instrumentation
|
73
|
-
faraday.adapter Faraday.default_adapter
|
74
|
-
end
|
75
|
-
conn.basic_auth(@api_key, @api_secret)
|
76
|
-
conn.headers.update({'Content-Type' => 'application/json'})
|
77
|
-
|
78
|
-
res = conn.send method.to_sym, *args
|
79
|
-
|
80
|
-
case res.status
|
81
|
-
when 401
|
82
|
-
raise "Invalid credentials"
|
83
|
-
when 400...599
|
84
|
-
if res.body.include? 'error'
|
85
|
-
raise res.body['error']
|
86
|
-
else
|
87
|
-
raise 'Unknown error'
|
88
|
-
end
|
89
|
-
else
|
90
|
-
res.body
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def uri(string)
|
95
|
-
if string =~ /^\/v/
|
96
|
-
string
|
97
|
-
elsif string =~ /^v/
|
98
|
-
'/' + string
|
99
|
-
elsif string =~ /^\//
|
100
|
-
"/#{@version}" + string
|
101
|
-
else
|
102
|
-
"/#{@version}/" + string
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
end
|
107
|
-
|
108
|
-
end
|
1
|
+
require 'crowdtilt/api_error'
|
2
|
+
require 'crowdtilt/crowdtilt'
|
@@ -0,0 +1,130 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
require 'faraday'
|
3
|
+
require 'faraday_middleware'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
module Crowdtilt
|
7
|
+
|
8
|
+
class << self
|
9
|
+
|
10
|
+
attr_accessor :api_key, :api_secret, :mode, :base_url, :version
|
11
|
+
|
12
|
+
def configure(params)
|
13
|
+
raise ArgumentError, "You must include both the api_key and api_secret" unless (params.include?(:api_key) && params.include?(:api_secret))
|
14
|
+
@api_key = params[:api_key]
|
15
|
+
@api_secret = params[:api_secret]
|
16
|
+
|
17
|
+
@version = 'v1'
|
18
|
+
|
19
|
+
if params[:mode] == 'production'
|
20
|
+
@mode = 'production'
|
21
|
+
@base_url = 'https://api.tilt.com'
|
22
|
+
else
|
23
|
+
@mode = 'sandbox'
|
24
|
+
@base_url = 'https://api-sandbox.tilt.com'
|
25
|
+
end
|
26
|
+
|
27
|
+
@base_url = params[:base_url] if params[:base_url]
|
28
|
+
@version = params[:version] if params[:version]
|
29
|
+
|
30
|
+
true
|
31
|
+
end
|
32
|
+
|
33
|
+
def get(string)
|
34
|
+
if block_given?
|
35
|
+
request :get, uri(string), &Proc.new
|
36
|
+
else
|
37
|
+
request :get, uri(string)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def post(string, params={})
|
42
|
+
if block_given?
|
43
|
+
request :post, uri(string), params, &Proc.new
|
44
|
+
else
|
45
|
+
request :post, uri(string), params
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def put(string, params={})
|
50
|
+
if block_given?
|
51
|
+
request :put, uri(string), params, &Proc.new
|
52
|
+
else
|
53
|
+
request :put, uri(string), params
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def delete(string)
|
58
|
+
if block_given?
|
59
|
+
request :delete, uri(string), &Proc.new
|
60
|
+
else
|
61
|
+
request :delete, uri(string)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def get_users()
|
66
|
+
get("/users")['users']
|
67
|
+
end
|
68
|
+
|
69
|
+
def get_user(id)
|
70
|
+
get("/users/#{id}")['user']
|
71
|
+
end
|
72
|
+
|
73
|
+
def create_user(user)
|
74
|
+
post("/users", { :user => user })['user']
|
75
|
+
end
|
76
|
+
|
77
|
+
def update_user(id, user)
|
78
|
+
put("/users/#{id}", { :user => user })['user']
|
79
|
+
end
|
80
|
+
|
81
|
+
private
|
82
|
+
|
83
|
+
def request(method, *args)
|
84
|
+
conn = Faraday.new(:url => @base_url) do |faraday|
|
85
|
+
# faraday.response :logger
|
86
|
+
faraday.request :json
|
87
|
+
faraday.response :json, :content_type => /\bjson$/
|
88
|
+
faraday.use :instrumentation
|
89
|
+
faraday.adapter Faraday.default_adapter
|
90
|
+
end
|
91
|
+
conn.basic_auth(@api_key, @api_secret)
|
92
|
+
conn.headers.update({'Content-Type' => 'application/json'})
|
93
|
+
|
94
|
+
yield conn if block_given?
|
95
|
+
|
96
|
+
res = conn.send method.to_sym, *args
|
97
|
+
handle_response(res)
|
98
|
+
end
|
99
|
+
|
100
|
+
def handle_response(res)
|
101
|
+
response_obj = res.respond_to?(:to_hash) ? res.to_hash : res
|
102
|
+
case response_obj[:status]
|
103
|
+
when 401
|
104
|
+
raise ApiError.new('Invalid credentials', response_obj)
|
105
|
+
when 400...599
|
106
|
+
if response_obj[:body].include? 'error'
|
107
|
+
raise ApiError.new(response_obj[:body]['error'], response_obj)
|
108
|
+
else
|
109
|
+
raise ApiError.new('Unknown error', response_obj)
|
110
|
+
end
|
111
|
+
else
|
112
|
+
response_obj[:body]
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def uri(string)
|
117
|
+
if string =~ /^\/v/
|
118
|
+
string
|
119
|
+
elsif string =~ /^v/
|
120
|
+
'/' + string
|
121
|
+
elsif string =~ /^\//
|
122
|
+
"/#{@version}" + string
|
123
|
+
else
|
124
|
+
"/#{@version}/" + string
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
end
|
129
|
+
|
130
|
+
end
|
metadata
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crowdtilt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc St Raymond
|
8
|
+
- Sam Wyman
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
@@ -30,20 +31,14 @@ dependencies:
|
|
30
31
|
requirements:
|
31
32
|
- - ~>
|
32
33
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
-
- - <
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: '0.10'
|
34
|
+
version: 0.8.8
|
37
35
|
type: :runtime
|
38
36
|
prerelease: false
|
39
37
|
version_requirements: !ruby/object:Gem::Requirement
|
40
38
|
requirements:
|
41
39
|
- - ~>
|
42
40
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
44
|
-
- - <
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '0.10'
|
41
|
+
version: 0.8.8
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: faraday_middleware
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,12 +82,14 @@ dependencies:
|
|
87
82
|
- !ruby/object:Gem::Version
|
88
83
|
version: '0'
|
89
84
|
description: A lightweight ruby wrapper for the Crowdtilt API
|
90
|
-
email:
|
85
|
+
email: team@crowdhoster.com
|
91
86
|
executables: []
|
92
87
|
extensions: []
|
93
88
|
extra_rdoc_files: []
|
94
89
|
files:
|
95
90
|
- lib/crowdtilt.rb
|
91
|
+
- lib/crowdtilt/api_error.rb
|
92
|
+
- lib/crowdtilt/crowdtilt.rb
|
96
93
|
homepage: https://www.crowdtilt.com/learn/developers
|
97
94
|
licenses:
|
98
95
|
- MIT
|
@@ -113,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
110
|
version: '0'
|
114
111
|
requirements: []
|
115
112
|
rubyforge_project:
|
116
|
-
rubygems_version: 2.
|
113
|
+
rubygems_version: 2.4.4
|
117
114
|
signing_key:
|
118
115
|
specification_version: 4
|
119
116
|
summary: Crowdtilt Ruby Client
|