croudia 1.0.11 → 1.0.12

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,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