crowdtilt 1.0.0 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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