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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MGI4NTg1OTFjZGNkMGI1NzRiMjRkYWUyYWUxMGE4NTFjMWIwMWJiNw==
4
+ MzQ0Yjk3OGY3ODk2ZDI4Y2EzMGU4MmE2NjIxYzFmZTIyZjQ0ZjI1Yg==
5
5
  data.tar.gz: !binary |-
6
- MzQ0OWE0NzZlNjczMWM1ZmEzMWQwMGNiY2M2NzA2ZTZkYWI1Y2VjNA==
7
- !binary "U0hBNTEy":
6
+ ZTA2OGI3ZWRkYzY1NjVhYmIxMzc2MzQ4ZDJmNjUxNTA1YWQyYjQ5Nw==
7
+ SHA512:
8
8
  metadata.gz: !binary |-
9
- NDg0MGE1YmU2YTk1MjRmOWIxMmU2NDhlNmY1MTkyN2E4OTRmZDg1ZDViM2I2
10
- MzkyMmE1NGNhNmFlMGM3NjZiMTEzYmVlYTBjNDliMzljNDBiNTZjMTI5Mzdj
11
- MjI3NjkxYTAyZjJlZjcyYWZmNTMwY2ZhNTZmNWIzYzVmZDE5NGE=
9
+ ZjUxZWI0YWVlNDEyNjJkYzZlODkzZjIyMDg3ZGE0YTM3Zjg2MjMyZGU4MTQ0
10
+ YTc0MzM0OTkwMTY3YzQ0NWE1ZDQzZjEwYzY1ODU3MzUxNDQ0OWJhNzI5MDRh
11
+ Y2JhMDM0ZjExZDc3NTI2NWEyNWY5NzdlNWE3NjkwNjNiOTBmYzA=
12
12
  data.tar.gz: !binary |-
13
- ZGFiMDdlZDEwMDgzYmU0ZTIyYjhiMjk0YmMyNDIzMWNmNDkyNjZlYTA5OTBh
14
- NzBkOWEwY2UwMjk0NzVlYjk5MGI1OTEyM2QxYTQ5Yzg0MmQ0OTNmYTFhMTFh
15
- NzhjNzBkOTA2ZWNjMzc4ZjAwMDExZWYzOTk5ZDkwN2QyZTVhMDQ=
13
+ NjZhZmJjN2ZhYTJjOGRiNDZmYjU2ZTE1ODAxY2ViZjUxZjQwZDRhZDBjMTRj
14
+ OTVmY2UyYjc4YjNiM2U0MGVkODQ0MmMyYmM2NWEwMWQ5NzllZDk2OTE4NjE4
15
+ MGUzZWViMTQ0YjhhMzViMjlhOGFmNzM0ZGEwZTQ1NmFmMWNkNjE=
@@ -1,108 +1,2 @@
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.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,11 @@
1
+ module Crowdtilt
2
+
3
+ class ApiError < StandardError
4
+ attr_accessor :response
5
+
6
+ def initialize(message, response)
7
+ @response = response
8
+ super(message)
9
+ end
10
+ end
11
+ end
@@ -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.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: '0.8'
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: '0.8'
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: marc@crowditlt.com
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.0.6
113
+ rubygems_version: 2.4.4
117
114
  signing_key:
118
115
  specification_version: 4
119
116
  summary: Crowdtilt Ruby Client