Module: Cloudinary::BaseApi
- Included in:
- AccountApi, Api
- Defined in:
- lib/cloudinary/base_api.rb
Defined Under Namespace
Classes: AlreadyExists, AuthorizationRequired, BadRequest, Error, GeneralError, NotAllowed, NotFound, RateLimited, Response
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.extended(base) ⇒ Object
35
36
37
38
39
|
# File 'lib/cloudinary/base_api.rb', line 35
def self.extended(base)
[Error, NotFound, NotAllowed, AlreadyExists, RateLimited, BadRequest, GeneralError, AuthorizationRequired, Response].each do |constant|
base.const_set(constant.name.split("::").last, constant)
end
end
|
Instance Method Details
#call_json_api(method, api_url, payload, timeout, headers, proxy = nil, user = nil, password = nil) ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/cloudinary/base_api.rb', line 41
def call_json_api(method, api_url, payload, timeout, , proxy = nil, user = nil, password = nil)
conn = Faraday.new(url: api_url) do |faraday|
faraday.proxy = proxy if proxy
faraday.request :json
faraday.adapter @adapter || Faraday.default_adapter
end
response = conn.run_request(method.downcase.to_sym, nil, payload, ) do |req|
req.options.timeout = timeout if timeout
req.basic_auth(user, password) if user && password
end
return Response.new(response) if response.status == 200
exception_class = case response.status
when 400 then BadRequest
when 401 then AuthorizationRequired
when 403 then NotAllowed
when 404 then NotFound
when 409 then AlreadyExists
when 420 then RateLimited
when 500 then GeneralError
else raise GeneralError.new("Server returned unexpected status code - #{response.status} - #{response.body}")
end
json = Cloudinary::Api.parse_json_response(response)
raise exception_class.new(json["error"]["message"])
end
|