assembla_api 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +20 -0
- data/Rakefile +22 -0
- data/lib/assembla_api.rb +130 -0
- data/lib/assembla_api/api.rb +373 -0
- data/lib/assembla_api/api/actions.rb +58 -0
- data/lib/assembla_api/api/arguments.rb +248 -0
- data/lib/assembla_api/api/config.rb +107 -0
- data/lib/assembla_api/api/config/property.rb +30 -0
- data/lib/assembla_api/api/config/property_set.rb +119 -0
- data/lib/assembla_api/api/factory.rb +33 -0
- data/lib/assembla_api/authorization.rb +76 -0
- data/lib/assembla_api/client.rb +21 -0
- data/lib/assembla_api/client/activity.rb +30 -0
- data/lib/assembla_api/client/authorizations.rb +143 -0
- data/lib/assembla_api/client/authorizations/app.rb +98 -0
- data/lib/assembla_api/client/portfolio.rb +19 -0
- data/lib/assembla_api/client/portfolio/invitations.rb +30 -0
- data/lib/assembla_api/client/portfolio/spaces.rb +13 -0
- data/lib/assembla_api/client/portfolio/standup_reports.rb +34 -0
- data/lib/assembla_api/client/portfolio/tasks.rb +13 -0
- data/lib/assembla_api/client/portfolio/ticket_reports.rb +13 -0
- data/lib/assembla_api/client/portfolio/tickets.rb +13 -0
- data/lib/assembla_api/client/portfolio/users.rb +13 -0
- data/lib/assembla_api/client/spaces.rb +140 -0
- data/lib/assembla_api/client/spaces/documents.rb +87 -0
- data/lib/assembla_api/client/spaces/milestones.rb +102 -0
- data/lib/assembla_api/client/spaces/space_tools.rb +65 -0
- data/lib/assembla_api/client/spaces/space_tools/merge_requests.rb +105 -0
- data/lib/assembla_api/client/spaces/space_tools/merge_requests/versions.rb +41 -0
- data/lib/assembla_api/client/spaces/space_tools/merge_requests/versions/comments.rb +34 -0
- data/lib/assembla_api/client/spaces/space_tools/merge_requests/versions/votes.rb +46 -0
- data/lib/assembla_api/client/spaces/ssh.rb +14 -0
- data/lib/assembla_api/client/spaces/ssh/actions.rb +76 -0
- data/lib/assembla_api/client/spaces/ssh/actions/launches.rb +14 -0
- data/lib/assembla_api/client/spaces/ssh/keys.rb +18 -0
- data/lib/assembla_api/client/spaces/ssh/launches.rb +29 -0
- data/lib/assembla_api/client/spaces/ssh/servers.rb +63 -0
- data/lib/assembla_api/client/spaces/standup_away_reports.rb +41 -0
- data/lib/assembla_api/client/spaces/standup_reports.rb +41 -0
- data/lib/assembla_api/client/spaces/tags.rb +96 -0
- data/lib/assembla_api/client/spaces/tickets.rb +154 -0
- data/lib/assembla_api/client/spaces/tickets/associations.rb +57 -0
- data/lib/assembla_api/client/spaces/tickets/comments.rb +45 -0
- data/lib/assembla_api/client/spaces/tickets/custom_fields.rb +57 -0
- data/lib/assembla_api/client/spaces/tickets/statuses.rb +55 -0
- data/lib/assembla_api/client/spaces/user_roles.rb +61 -0
- data/lib/assembla_api/client/spaces/users.rb +11 -0
- data/lib/assembla_api/client/spaces/webhooks.rb +63 -0
- data/lib/assembla_api/client/spaces/wiki_pages.rb +78 -0
- data/lib/assembla_api/client/spaces/wiki_pages/versions.rb +20 -0
- data/lib/assembla_api/client/tasks.rb +72 -0
- data/lib/assembla_api/client/users.rb +49 -0
- data/lib/assembla_api/client/users/keys.rb +97 -0
- data/lib/assembla_api/configuration.rb +71 -0
- data/lib/assembla_api/connection.rb +66 -0
- data/lib/assembla_api/constants.rb +74 -0
- data/lib/assembla_api/core_ext/array.rb +25 -0
- data/lib/assembla_api/core_ext/hash.rb +92 -0
- data/lib/assembla_api/core_ext/ordered_hash.rb +107 -0
- data/lib/assembla_api/deprecation.rb +39 -0
- data/lib/assembla_api/error.rb +37 -0
- data/lib/assembla_api/error/bad_request.rb +14 -0
- data/lib/assembla_api/error/client_error.rb +20 -0
- data/lib/assembla_api/error/forbidden.rb +14 -0
- data/lib/assembla_api/error/internal_server_error.rb +15 -0
- data/lib/assembla_api/error/invalid_options.rb +18 -0
- data/lib/assembla_api/error/not_acceptable.rb +15 -0
- data/lib/assembla_api/error/not_found.rb +14 -0
- data/lib/assembla_api/error/required_params.rb +18 -0
- data/lib/assembla_api/error/service_error.rb +68 -0
- data/lib/assembla_api/error/service_unavailable.rb +15 -0
- data/lib/assembla_api/error/unauthorized.rb +15 -0
- data/lib/assembla_api/error/unknown_media.rb +18 -0
- data/lib/assembla_api/error/unknown_value.rb +18 -0
- data/lib/assembla_api/error/unprocessable_entity.rb +14 -0
- data/lib/assembla_api/error/validations.rb +18 -0
- data/lib/assembla_api/ext/faraday.rb +38 -0
- data/lib/assembla_api/jsonable.rb +18 -0
- data/lib/assembla_api/middleware.rb +31 -0
- data/lib/assembla_api/mime_type.rb +33 -0
- data/lib/assembla_api/normalizer.rb +25 -0
- data/lib/assembla_api/null_encoder.rb +25 -0
- data/lib/assembla_api/page_iterator.rb +142 -0
- data/lib/assembla_api/page_links.rb +45 -0
- data/lib/assembla_api/paged_request.rb +40 -0
- data/lib/assembla_api/pagination.rb +102 -0
- data/lib/assembla_api/parameter_filter.rb +32 -0
- data/lib/assembla_api/params_hash.rb +101 -0
- data/lib/assembla_api/rate_limit.rb +25 -0
- data/lib/assembla_api/request.rb +85 -0
- data/lib/assembla_api/request/basic_auth.rb +33 -0
- data/lib/assembla_api/request/jsonize.rb +53 -0
- data/lib/assembla_api/request/key_auth.rb +31 -0
- data/lib/assembla_api/request/oauth2.rb +42 -0
- data/lib/assembla_api/request/verbs.rb +60 -0
- data/lib/assembla_api/response.rb +28 -0
- data/lib/assembla_api/response/header.rb +76 -0
- data/lib/assembla_api/response/jsonize.rb +29 -0
- data/lib/assembla_api/response/mashify.rb +24 -0
- data/lib/assembla_api/response/raise_error.rb +18 -0
- data/lib/assembla_api/response/xmlize.rb +26 -0
- data/lib/assembla_api/response_wrapper.rb +157 -0
- data/lib/assembla_api/ssl_certs/cacerts.pem +2183 -0
- data/lib/assembla_api/utils/url.rb +59 -0
- data/lib/assembla_api/validations.rb +25 -0
- data/lib/assembla_api/validations/format.rb +24 -0
- data/lib/assembla_api/validations/presence.rb +30 -0
- data/lib/assembla_api/validations/required.rb +24 -0
- data/lib/assembla_api/validations/token.rb +41 -0
- data/lib/assembla_api/version.rb +12 -0
- metadata +347 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'descendants_tracker'
|
4
|
+
|
5
|
+
module Assembla
|
6
|
+
module Error
|
7
|
+
class AssemblaError < StandardError
|
8
|
+
extend DescendantsTracker
|
9
|
+
|
10
|
+
attr_reader :response_message, :response_headers
|
11
|
+
|
12
|
+
# Initialize a new Assembla error object.
|
13
|
+
#
|
14
|
+
def initialize(message=$!)
|
15
|
+
if message.respond_to?(:backtrace)
|
16
|
+
super(message.message)
|
17
|
+
@response_message = message
|
18
|
+
else
|
19
|
+
super(message.to_s)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def backtrace
|
24
|
+
@response_message ? @response_message.backtrace : super
|
25
|
+
end
|
26
|
+
|
27
|
+
end # AssemblaError
|
28
|
+
end # Error
|
29
|
+
end # Assembla
|
30
|
+
|
31
|
+
require 'assembla_api/error/service_error'
|
32
|
+
require 'assembla_api/error/client_error'
|
33
|
+
Dir[File.dirname(__FILE__) + '/error/*.rb'].sort.each do |path|
|
34
|
+
filename = File.basename(path)
|
35
|
+
next if ['service_error.rb', 'client_error.rb'].include?(filename)
|
36
|
+
require "assembla_api/error/#{filename}"
|
37
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla
|
4
|
+
module Error
|
5
|
+
# Raised when Assembla returns the HTTP status code 400
|
6
|
+
class BadRequest < ServiceError
|
7
|
+
http_status_code 400
|
8
|
+
|
9
|
+
def initialize(response)
|
10
|
+
super(response)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end # Assembla
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when Assembla returns the HTTP status code 404
|
5
|
+
module Error
|
6
|
+
class ClientError < AssemblaError
|
7
|
+
attr_reader :problem, :summary, :resolution
|
8
|
+
|
9
|
+
def initialize(message)
|
10
|
+
super(message)
|
11
|
+
end
|
12
|
+
|
13
|
+
def generate_message(attributes)
|
14
|
+
"\nProblem:\n #{attributes[:problem]}"+
|
15
|
+
"\nSummary:\n #{attributes[:summary]}"+
|
16
|
+
"\nResolution:\n #{attributes[:resolution]}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end # Error
|
20
|
+
end # Assembla
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when Assembla returns the HTTP status code 403
|
5
|
+
module Error
|
6
|
+
class Forbidden < ServiceError
|
7
|
+
http_status_code 403
|
8
|
+
|
9
|
+
def initialize(response)
|
10
|
+
super(response)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end # Error
|
14
|
+
end # Assembla
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when Assembla returns the HTTP status code 500
|
5
|
+
module Error
|
6
|
+
class InternalServerError < ServiceError
|
7
|
+
http_status_code 500
|
8
|
+
|
9
|
+
def initialize(response)
|
10
|
+
super(response)
|
11
|
+
end
|
12
|
+
|
13
|
+
end # InternalServerError
|
14
|
+
end # Error
|
15
|
+
end # Assembla
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when invalid options are passed to a request body
|
5
|
+
module Error
|
6
|
+
class InvalidOptions < ClientError
|
7
|
+
def initialize(invalid, valid)
|
8
|
+
super(
|
9
|
+
generate_message(
|
10
|
+
:problem => "Invalid option #{invalid.keys.join(', ')} provided for this request.",
|
11
|
+
:summary => "Assembla gem checks the request parameters passed to ensure that assembla api is not hit unnecessairly and to fail fast.",
|
12
|
+
:resolution => "Valid options are: #{valid.join(', ')}, make sure these are the ones you are using"
|
13
|
+
)
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end # Error
|
18
|
+
end # Assembla
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when Assembla returns the HTTP status code 406
|
5
|
+
module Error
|
6
|
+
class NotAcceptable < ServiceError
|
7
|
+
http_status_code 406
|
8
|
+
|
9
|
+
def initialize(response)
|
10
|
+
super(response)
|
11
|
+
end
|
12
|
+
|
13
|
+
end # NotAcceptable
|
14
|
+
end # Error
|
15
|
+
end # Assembla
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when Assembla returns the HTTP status code 404
|
5
|
+
module Error
|
6
|
+
class NotFound < ServiceError
|
7
|
+
http_status_code 404
|
8
|
+
|
9
|
+
def initialize(env)
|
10
|
+
super(env)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end # Error
|
14
|
+
end # Assembla
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when invalid options are passed to a request body
|
5
|
+
module Error
|
6
|
+
class RequiredParams < ClientError
|
7
|
+
def initialize(provided, required)
|
8
|
+
super(
|
9
|
+
generate_message(
|
10
|
+
:problem => "Missing required parameters: #{provided.keys.join(', ')} provided for this request.",
|
11
|
+
:summary => "Assembla gem checks the request parameters passed to ensure that assembla api is not hit unnecessairly and to fail fast.",
|
12
|
+
:resolution => "Required parameters are: #{required.join(', ')}, make sure these are the ones you are using"
|
13
|
+
)
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end # Error
|
18
|
+
end # Assembla
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# require 'multi_json'
|
3
|
+
require 'assembla_api/jsonable'
|
4
|
+
|
5
|
+
module Assembla
|
6
|
+
# Raised when Assembla returns any of the HTTP status codes
|
7
|
+
module Error
|
8
|
+
class ServiceError < AssemblaError
|
9
|
+
include ::Assembla::Jsonable
|
10
|
+
|
11
|
+
attr_reader :http_headers, :body, :status
|
12
|
+
|
13
|
+
MIN_BODY_LENGTH = 2
|
14
|
+
|
15
|
+
def initialize(response)
|
16
|
+
@http_headers = response[:response_headers]
|
17
|
+
message = parse_response(response)
|
18
|
+
super(message)
|
19
|
+
end
|
20
|
+
|
21
|
+
def parse_response(response)
|
22
|
+
@body = parse_body(response[:body])
|
23
|
+
@status = response[:status]
|
24
|
+
"#{response[:method].to_s.upcase} #{response[:url].to_s}: #{@status} #{@body}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def decode_body(body)
|
28
|
+
if body.respond_to?(:to_str) && body.length >= MIN_BODY_LENGTH
|
29
|
+
decode body, symbolize_keys: true
|
30
|
+
else
|
31
|
+
body
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def parse_body(body)
|
36
|
+
body = decode_body(body)
|
37
|
+
|
38
|
+
return '' if body.nil? || body.empty?
|
39
|
+
|
40
|
+
if body[:error]
|
41
|
+
body[:error]
|
42
|
+
elsif body[:errors]
|
43
|
+
error = Array(body[:errors]).first
|
44
|
+
if error.kind_of?(Hash)
|
45
|
+
error[:message]
|
46
|
+
else
|
47
|
+
error
|
48
|
+
end
|
49
|
+
elsif body[:message]
|
50
|
+
body[:message]
|
51
|
+
else
|
52
|
+
''
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.http_status_code(code)
|
57
|
+
define_method(:http_status_code) { code }
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.errors
|
61
|
+
@errors ||= Hash[
|
62
|
+
descendants.map { |klass| [klass.new({}).http_status_code, klass] }
|
63
|
+
]
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end # Error
|
68
|
+
end # Assembla
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when Assembla returns the HTTP status code 503
|
5
|
+
module Error
|
6
|
+
class ServiceUnavailable < ServiceError
|
7
|
+
http_status_code 503
|
8
|
+
|
9
|
+
def initialize(response)
|
10
|
+
super(response)
|
11
|
+
end
|
12
|
+
|
13
|
+
end # ServiceUnavailable
|
14
|
+
end # Error
|
15
|
+
end # Assembla
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when Assembla returns the HTTP status code 401
|
5
|
+
module Error
|
6
|
+
class Unauthorized < ServiceError
|
7
|
+
http_status_code 401
|
8
|
+
|
9
|
+
def initialize(response)
|
10
|
+
super(response)
|
11
|
+
end
|
12
|
+
|
13
|
+
end # Unauthorized
|
14
|
+
end # Error
|
15
|
+
end # Assembla
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when invalid options are passed to a request body
|
5
|
+
module Error
|
6
|
+
class UnknownMedia < ClientError
|
7
|
+
def initialize(file)
|
8
|
+
super(
|
9
|
+
generate_message(
|
10
|
+
:problem => "Unknown content type for: '#{file}' provided for this request.",
|
11
|
+
:summary => "Assembla gem infers the content type of the resource by calling the mime-types gem type inference.",
|
12
|
+
:resolution => "Please install mime-types gem to infer the resource content type."
|
13
|
+
)
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end # Error
|
18
|
+
end # Assembla
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when invalid options are passed to a request body
|
5
|
+
module Error
|
6
|
+
class UnknownValue < ClientError
|
7
|
+
def initialize(key, value, permitted)
|
8
|
+
super(
|
9
|
+
generate_message(
|
10
|
+
:problem => "Wrong value of '#{value}' for the parameter: #{key} provided for this request.",
|
11
|
+
:summary => "Assembla gem checks the request parameters passed to ensure that assembla api is not hit unnecessairly and fails fast.",
|
12
|
+
:resolution => "Permitted values are: #{permitted}, make sure these are the ones you are using"
|
13
|
+
)
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end # Error
|
18
|
+
end # Assembla
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when Assembla returns the HTTP status code 422
|
5
|
+
module Error
|
6
|
+
class UnprocessableEntity < ServiceError
|
7
|
+
http_status_code 422
|
8
|
+
|
9
|
+
def initialize(response)
|
10
|
+
super(response)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end # Error
|
14
|
+
end # Assembla
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Assembla #:nodoc
|
4
|
+
# Raised when passed parameters are missing or contain wrong values.
|
5
|
+
module Error
|
6
|
+
class Validations < ClientError
|
7
|
+
def initialize(errors)
|
8
|
+
super(
|
9
|
+
generate_message(
|
10
|
+
:problem => "Attempted to send request with nil arguments for #{errors.keys.join(', ')}.",
|
11
|
+
:summary => 'Each request expects certain number of required arguments.',
|
12
|
+
:resolution => 'Double check that the provided arguments are set to some value that is neither nil nor empty string.'
|
13
|
+
)
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end # Error
|
18
|
+
end # Assembla
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Faraday
|
4
|
+
module Utils
|
5
|
+
|
6
|
+
class ParamsHash
|
7
|
+
def params_encoder(encoder = nil)
|
8
|
+
if encoder
|
9
|
+
@encoder = encoder
|
10
|
+
else
|
11
|
+
@encoder
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_query(encoder = nil)
|
16
|
+
Utils.build_nested_query(self, nil, params_encoder)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def build_nested_query(value, prefix = nil, encoder = nil)
|
21
|
+
case value
|
22
|
+
when Array
|
23
|
+
value.map { |v| build_nested_query(v, "#{prefix}%5B%5D", encoder) }.join("&")
|
24
|
+
when Hash
|
25
|
+
value.map { |k, v|
|
26
|
+
processed_value = encoder ? encoder.escape(k) : escape(k)
|
27
|
+
build_nested_query(v, prefix ? "#{prefix}%5B#{processed_value}%5D" : processed_value, encoder)
|
28
|
+
}.join("&")
|
29
|
+
when NilClass
|
30
|
+
prefix
|
31
|
+
else
|
32
|
+
raise ArgumentError, "value must be a Hash" if prefix.nil?
|
33
|
+
processed_value = encoder ? encoder.escape(value) : escape(value)
|
34
|
+
"#{prefix}=#{processed_value}"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'multi_json'
|
4
|
+
|
5
|
+
module Assembla
|
6
|
+
module Jsonable
|
7
|
+
extend self
|
8
|
+
|
9
|
+
def decode(*args)
|
10
|
+
return unless args.first
|
11
|
+
if MultiJson.respond_to?(:load)
|
12
|
+
MultiJson.load *args
|
13
|
+
else
|
14
|
+
MultiJson.decode *args
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'assembla_api/response'
|
4
|
+
require 'assembla_api/response/mashify'
|
5
|
+
require 'assembla_api/response/jsonize'
|
6
|
+
require 'assembla_api/response/raise_error'
|
7
|
+
require 'assembla_api/response/header'
|
8
|
+
|
9
|
+
module Assembla
|
10
|
+
class Middleware
|
11
|
+
def self.default(options = {})
|
12
|
+
api = options[:api]
|
13
|
+
proc do |builder|
|
14
|
+
builder.use Faraday::Request::Multipart
|
15
|
+
builder.use Assembla::Request::Jsonize
|
16
|
+
builder.use Faraday::Request::UrlEncoded
|
17
|
+
builder.use Assembla::Request::OAuth2, api.oauth_token if api.oauth_token?
|
18
|
+
builder.use Assembla::Request::BasicAuth, api.authentication if api.basic_authed?
|
19
|
+
builder.use Assembla::Request::KeyAuth, { api_key: api.api_key, api_secret: api.api_secret } if api.api_key?
|
20
|
+
|
21
|
+
builder.use Faraday::Response::Logger if ENV['DEBUG']
|
22
|
+
unless options[:raw]
|
23
|
+
builder.use Assembla::Response::Mashify
|
24
|
+
builder.use Assembla::Response::Jsonize
|
25
|
+
end
|
26
|
+
builder.use Assembla::Response::RaiseError
|
27
|
+
builder.adapter options[:adapter]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end # Middleware
|
31
|
+
end # Assembla
|