Sha256: 10acdda3da6487b603943b2be0d19e14781a0b662cd5c3b2144210a2c369c49d
Contents?: true
Size: 1.6 KB
Versions: 3
Compression:
Stored size: 1.6 KB
Contents
require "faraday" require "json" require "forwardable" require "espago/router" require "espago/error" require "espago/response" require "facets/kernel/require_all" require "espago/api_connection/api" require "espago/api_connection/api_delete" require "espago/api_connection/api_get" require "espago/api_connection/api_post" require "espago/api_connection/api_put" begin require_all "error/*" require_all "api_connection/*" rescue LoadError #if "require_all" method isn't from kernel gem require_rel "error/*" require_rel "api_connection/*" end module Espago class ApiConnection def initialize(enviroment,headers) @connection = Faraday.new(enviroment) @connection.headers = headers @router = Router end def create(path, method, params = {} ) route = @router.new(path, method).route response = route.new(@connection).request(params) handle_response response end def authenticate(username, password) @connection.request(:authorization, :basic, username, password) end private def handle_response(response) case response.status when 200, 201, 204 return Response.new(response) when 400, 404, 422 raise invalid_request_error(response) when 401 raise authentication_error(response) else raise api_error(response) end end def invalid_request_error(response) InvalidRequestError.new(response) end def authentication_error(response) AuthenticationError.new(response) end def api_error(response) ApiError.new(response) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
espago-0.1.11 | lib/espago/api_connection.rb |
espago-0.1.10 | lib/espago/api_connection.rb |
espago-0.1.9 | lib/espago/api_connection.rb |