croudia 1.0.11 → 1.0.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b1870bc50a1df21c44df32b2da5ef742bb98743
4
- data.tar.gz: 594410ac41e7d9ae00b8fa1e32ddc3b4769a0377
3
+ metadata.gz: 1d4a58cfd9120736f45872cdf84debae55fb32c6
4
+ data.tar.gz: d9f42d52f34058b0f2b4c20074a339149777e3e0
5
5
  SHA512:
6
- metadata.gz: c6638245cef024657c62de8820b946c8309797aaed192e55cd30860942a0315b3dfdd5281f3701914a13fcbc8dfca44a9dec11fc87a4d0a0f65d3b405146c748
7
- data.tar.gz: 96e3b87551002c4aef91691ee37577a90411886776a18f6f404c614a406e0d3db2ca39e3e6ce1832c9662a9aaf903abec6ec2b09deec4a72a62bc5f07a16d3e6
6
+ metadata.gz: 51cacb282bfb8f3cd36ffc8d505b61f9aad40d3d0b7a621eac97c39c1eba6641d3229128e0e06158d55d8ae81a42b5751b12b3ddb4ec7b14b189c47637cb8f01
7
+ data.tar.gz: 1d1ca52175317b7c7e5a5500ee78bd1636d91bc56e4789fc9565d3ed446b67a2b011918d5e9e41776e2dde7a1fa0c2799c3fbd156715a95b899f5c4e5031db05
@@ -23,6 +23,15 @@ module Croudia
23
23
  resp = post('/account/update_profile_image.json', params)
24
24
  Croudia::User.new(resp)
25
25
  end
26
+
27
+ # Update profile
28
+ #
29
+ # @param params [Hash]
30
+ # @return [Croudia::User] Updated profile
31
+ def update_profile(params)
32
+ resp = post('/account/update_profile.json', params)
33
+ Croudia::User.new(resp)
34
+ end
26
35
  end
27
36
  end
28
37
  end
@@ -1,70 +1,70 @@
1
- require 'faraday'
2
- require 'faraday_middleware'
3
- require 'croudia/configurable'
4
- require 'croudia/request/multipart_with_file'
5
- require 'croudia/request/raise_error'
6
- require 'croudia/response/parse_json'
7
- require 'croudia/response/raise_error'
8
- require 'croudia/version'
9
-
10
- module Croudia
11
- module Default
12
- ENDPOINT = 'https://api.croudia.com' unless defined? Croudia::Default::ENDPOINT
13
- CONNECTION_OPTIONS = {
14
- headers: {
15
- accept: 'application/json',
16
- user_agent: "Croudia Ruby Gem/#{Croudia::VERSION}",
17
- },
18
- request: {
19
- open_timeout: 5,
20
- timeout: 20,
21
- },
22
- ssl: {
23
- verify: true,
24
- },
25
- } unless defined? Croudia::Default::CONNECTION_OPTIONS
26
- MIDDLEWARE = Faraday::Builder.new do |builder|
27
- builder.request :multipart_with_file
28
- builder.request :multipart
29
- builder.request :url_encoded
30
- builder.request :raise_error
31
-
32
- builder.response :raise_error
33
- builder.response :parse_json
34
-
35
- builder.adapter Faraday.default_adapter
36
- end unless defined? Croudia::Default::MIDDLEWARE
37
-
38
- class << self
39
- def options
40
- Hash[Croudia::Configurable.keys.map do |key|
41
- [key, __send__(key)]
42
- end]
43
- end
44
-
45
- def client_id
46
- ENV['CROUDIA_CLIENT_ID']
47
- end
48
-
49
- def client_secret
50
- ENV['CROUDIA_CLIENT_SECRET']
51
- end
52
-
53
- def access_token
54
- ENV['CROUDIA_ACCESS_TOKEN']
55
- end
56
-
57
- def endpoint
58
- ENDPOINT
59
- end
60
-
61
- def connection_options
62
- CONNECTION_OPTIONS
63
- end
64
-
65
- def middleware
66
- MIDDLEWARE
67
- end
68
- end
69
- end
70
- end
1
+ require 'faraday'
2
+ require 'faraday_middleware'
3
+ require 'croudia/configurable'
4
+ require 'croudia/request/multipart_with_file'
5
+ require 'croudia/request/raise_error'
6
+ require 'croudia/response/parse_json'
7
+ require 'croudia/response/raise_error'
8
+ require 'croudia/version'
9
+
10
+ module Croudia
11
+ module Default
12
+ ENDPOINT = 'https://api.croudia.com' unless defined? Croudia::Default::ENDPOINT
13
+ CONNECTION_OPTIONS = {
14
+ headers: {
15
+ accept: 'application/json',
16
+ user_agent: "Croudia Ruby Gem/#{Croudia::VERSION}",
17
+ },
18
+ request: {
19
+ open_timeout: 10,
20
+ timeout: 30,
21
+ },
22
+ ssl: {
23
+ verify: true,
24
+ },
25
+ } unless defined? Croudia::Default::CONNECTION_OPTIONS
26
+ MIDDLEWARE = Faraday::Builder.new do |builder|
27
+ builder.request :multipart_with_file
28
+ builder.request :multipart
29
+ builder.request :url_encoded
30
+ builder.request :raise_error
31
+
32
+ builder.response :raise_error
33
+ builder.response :parse_json
34
+
35
+ builder.adapter Faraday.default_adapter
36
+ end unless defined? Croudia::Default::MIDDLEWARE
37
+
38
+ class << self
39
+ def options
40
+ Hash[Croudia::Configurable.keys.map do |key|
41
+ [key, __send__(key)]
42
+ end]
43
+ end
44
+
45
+ def client_id
46
+ ENV['CROUDIA_CLIENT_ID']
47
+ end
48
+
49
+ def client_secret
50
+ ENV['CROUDIA_CLIENT_SECRET']
51
+ end
52
+
53
+ def access_token
54
+ ENV['CROUDIA_ACCESS_TOKEN']
55
+ end
56
+
57
+ def endpoint
58
+ ENDPOINT
59
+ end
60
+
61
+ def connection_options
62
+ CONNECTION_OPTIONS
63
+ end
64
+
65
+ def middleware
66
+ MIDDLEWARE
67
+ end
68
+ end
69
+ end
70
+ end
data/lib/croudia/error.rb CHANGED
@@ -1,48 +1,49 @@
1
- module Croudia
2
- class Error < StandardError
3
-
4
- # Error connecting to server
5
- class ConnectionFailed < Error
6
- attr_reader :wrapped_exception
7
-
8
- def initialize(e)
9
- @wrapped_exception = e
10
- super(e.respond_to?(:message) ? e.message : e.to_s)
11
- end
12
-
13
- def backtrace
14
- if @wrapped_exception.respond_to?(:backtrace)
15
- @wrapped_exception.backtrace
16
- else
17
- super
18
- end
19
- end
20
- end
21
-
22
- class Timeout < ConnectionFailed; end
23
-
24
- # Error connected to server
25
- class ConnectionError < Error
26
- attr_reader :code, :env, :error
27
-
28
- def initialize(env)
29
- @code = env[:status]
30
- @error = env[:body]['error'] rescue nil
31
- @env = env
32
- super(@error)
33
- end
34
- end
35
-
36
- # 4xx: Client Errors
37
- class ClientError < ConnectionError; end
38
- class BadRequest < ClientError; end
39
- class Unauthorized < ClientError; end
40
- class Forbidden < ClientError; end
41
- class NotFound < ClientError; end
42
-
43
- # 5xx: Server Errors
44
- class ServerError < ConnectionError; end
45
- class BadGateway < ServerError; end
46
- class Unavailable < ServerError; end
47
- end
48
- end
1
+ module Croudia
2
+ class Error < StandardError
3
+
4
+ # Error connecting to server
5
+ class NetworkError < Error
6
+ attr_reader :wrapped_exception
7
+
8
+ def initialize(e)
9
+ @wrapped_exception = e
10
+ super(e.respond_to?(:message) ? e.message : e.to_s)
11
+ end
12
+
13
+ def backtrace
14
+ if @wrapped_exception.respond_to?(:backtrace)
15
+ @wrapped_exception.backtrace
16
+ else
17
+ super
18
+ end
19
+ end
20
+ end
21
+
22
+ class Timeout < NetworkError; end
23
+
24
+ # Error connected to server
25
+ class ConnectionError < Error
26
+ attr_reader :code, :env, :error
27
+
28
+ def initialize(env)
29
+ @code = env[:status]
30
+ @error = env[:body]['error'] rescue nil
31
+ @env = env
32
+ super(@error)
33
+ end
34
+ end
35
+
36
+ # 4xx: Client Errors
37
+ class ClientError < ConnectionError; end
38
+ class BadRequest < ClientError; end
39
+ class Unauthorized < ClientError; end
40
+ class Forbidden < ClientError; end
41
+ class NotFound < ClientError; end
42
+
43
+ # 5xx: Server Errors
44
+ class ServerError < ConnectionError; end
45
+ class InternalServerError < ServerError; end
46
+ class BadGateway < ServerError; end
47
+ class Unavailable < ServerError; end
48
+ end
49
+ end
@@ -1,19 +1,19 @@
1
- require 'croudia/error'
2
- require 'faraday'
3
-
4
- module Croudia
5
- module Request
6
- class RaiseError < Faraday::Middleware
7
- def call(env)
8
- @app.call(env)
9
- rescue Faraday::Error::TimeoutError => e
10
- raise Croudia::Error::Timeout.new(e)
11
- rescue Faraday::Error::ConnectionFailed => e
12
- raise Croudia::Error::ConnectionFailed.new(e)
13
- end
14
- end
15
- end
16
- end
17
-
18
- Faraday.register_middleware :request,
19
- raise_error: lambda { Croudia::Request::RaiseError }
1
+ require 'croudia/error'
2
+ require 'faraday'
3
+
4
+ module Croudia
5
+ module Request
6
+ class RaiseError < Faraday::Middleware
7
+ def call(env)
8
+ @app.call(env)
9
+ rescue Faraday::Error::TimeoutError => e
10
+ raise Croudia::Error::Timeout.new(e)
11
+ rescue Faraday::Error::ConnectionFailed => e
12
+ raise Croudia::Error::NetworkError.new(e)
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+ Faraday.register_middleware :request,
19
+ raise_error: lambda { Croudia::Request::RaiseError }
@@ -1,36 +1,38 @@
1
- require 'croudia/error'
2
- require 'faraday'
3
-
4
- module Croudia
5
- module Response
6
- class RaiseError < Faraday::Response::Middleware
7
- def on_complete(env)
8
- error_class = case env[:status]
9
- when 400
10
- Croudia::Error::BadRequest
11
- when 401
12
- Croudia::Error::Unauthorized
13
- when 403
14
- Croudia::Error::Forbidden
15
- when 404
16
- Croudia::Error::NotFound
17
- when 400 .. 499
18
- Croudia::Error::ClientError
19
- when 502
20
- Croudia::Error::BadGateway
21
- when 503
22
- Croudia::Error::Unavailable
23
- when 500 .. 599
24
- Croudia::Error::ServerError
25
- else
26
- return
27
- end
28
-
29
- raise error_class.new(env)
30
- end
31
- end
32
- end
33
- end
34
-
35
- Faraday.register_middleware :response,
36
- raise_error: lambda { Croudia::Response::RaiseError }
1
+ require 'croudia/error'
2
+ require 'faraday'
3
+
4
+ module Croudia
5
+ module Response
6
+ class RaiseError < Faraday::Response::Middleware
7
+ def on_complete(env)
8
+ error_class = case env[:status]
9
+ when 400
10
+ Croudia::Error::BadRequest
11
+ when 401
12
+ Croudia::Error::Unauthorized
13
+ when 403
14
+ Croudia::Error::Forbidden
15
+ when 404
16
+ Croudia::Error::NotFound
17
+ when 400 .. 499
18
+ Croudia::Error::ClientError
19
+ when 500
20
+ Croudia::Error::InternalServerError
21
+ when 502
22
+ Croudia::Error::BadGateway
23
+ when 503
24
+ Croudia::Error::Unavailable
25
+ when 500 .. 599
26
+ Croudia::Error::ServerError
27
+ else
28
+ return
29
+ end
30
+
31
+ raise error_class.new(env)
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ Faraday.register_middleware :response,
38
+ raise_error: lambda { Croudia::Response::RaiseError }
@@ -1,3 +1,3 @@
1
1
  module Croudia
2
- VERSION = '1.0.11'
2
+ VERSION = '1.0.12'
3
3
  end
@@ -41,4 +41,28 @@ describe Croudia::API::Account do
41
41
  expect(subject).to be_a Croudia::User
42
42
  end
43
43
  end
44
+
45
+ describe '#update_profile' do
46
+ before do
47
+ stub_post('/account/update_profile.json').to_return(
48
+ body: fixture(:user),
49
+ headers: { content_type: 'application/json; charset=utf-8' }
50
+ )
51
+ end
52
+
53
+ it 'requests the correct resource' do
54
+ @client.update_profile(name: 'name', url: 'http://example.com')
55
+ expect(a_post('/account/update_profile.json').with(
56
+ body: {
57
+ name: 'name',
58
+ url: 'http://example.com',
59
+ }
60
+ )).to have_been_made
61
+ end
62
+
63
+ it 'returns a Croudia::User' do
64
+ subject = @client.update_profile(name: 'name', location: 'Japan')
65
+ expect(subject).to be_a Croudia::User
66
+ end
67
+ end
44
68
  end
@@ -1,46 +1,46 @@
1
- require 'faraday'
2
- require 'helper'
3
-
4
- describe Croudia::Error do
5
- before do
6
- @client = Croudia::Client.new
7
- end
8
-
9
- context 'connection error' do
10
- before do
11
- stub_get('/account/verify_credentials.json').to_raise Faraday::Error::ConnectionFailed
12
- end
13
-
14
- it 'raises Croudia::Error::ConnectionFailed' do
15
- expect { @client.verify_credentials }.to raise_error Croudia::Error::ConnectionFailed
16
- end
17
- end
18
-
19
- context 'client error' do
20
- before do
21
- stub_get('/account/verify_credentials.json').to_return(
22
- status: 401,
23
- body: fixture(:error),
24
- headers: { content_type: 'application/json; charset=utf-8' }
25
- )
26
- end
27
-
28
- it 'raises Croudia::Error::ClientError' do
29
- expect { @client.verify_credentials }.to raise_error Croudia::Error::ClientError
30
- end
31
- end
32
-
33
- context 'server error' do
34
- before do
35
- stub_get('/account/verify_credentials.json').to_return(
36
- status: 502,
37
- body: fixture(:error),
38
- headers: { content_type: 'application/json; charset=utf-8' }
39
- )
40
- end
41
-
42
- it 'raises Croudia::Error::ServerError' do
43
- expect { @client.verify_credentials }.to raise_error Croudia::Error::ServerError
44
- end
45
- end
46
- end
1
+ require 'faraday'
2
+ require 'helper'
3
+
4
+ describe Croudia::Error do
5
+ before do
6
+ @client = Croudia::Client.new
7
+ end
8
+
9
+ context 'connection error' do
10
+ before do
11
+ stub_get('/account/verify_credentials.json').to_raise Faraday::Error::ConnectionFailed
12
+ end
13
+
14
+ it 'raises Croudia::Error::NetworkError' do
15
+ expect { @client.verify_credentials }.to raise_error Croudia::Error::NetworkError
16
+ end
17
+ end
18
+
19
+ context 'client error' do
20
+ before do
21
+ stub_get('/account/verify_credentials.json').to_return(
22
+ status: 401,
23
+ body: fixture(:error),
24
+ headers: { content_type: 'application/json; charset=utf-8' }
25
+ )
26
+ end
27
+
28
+ it 'raises Croudia::Error::ClientError' do
29
+ expect { @client.verify_credentials }.to raise_error Croudia::Error::ClientError
30
+ end
31
+ end
32
+
33
+ context 'server error' do
34
+ before do
35
+ stub_get('/account/verify_credentials.json').to_return(
36
+ status: 502,
37
+ body: fixture(:error),
38
+ headers: { content_type: 'application/json; charset=utf-8' }
39
+ )
40
+ end
41
+
42
+ it 'raises Croudia::Error::ServerError' do
43
+ expect { @client.verify_credentials }.to raise_error Croudia::Error::ServerError
44
+ end
45
+ end
46
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: croudia
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
4
+ version: 1.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - wktk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-19 00:00:00.000000000 Z
11
+ date: 2013-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday