class Facturama::Services::HttpService
Public Class Methods
new(connection_info, uri_resource )
click to toggle source
# File lib/facturama/services/http_service.rb, line 11 def initialize(connection_info, uri_resource ) @connection_info = connection_info @uri_resource = uri_resource end
Public Instance Methods
delete(args = "")
click to toggle source
# File lib/facturama/services/http_service.rb, line 74 def delete(args = "") res=RestClient::Request.new( :method => :delete, :url => url(args), :user => @connection_info.facturama_user, :password => @connection_info.facturama_password , :headers => {:accept => :json, :content_type => :json } ) executor(res) end
get(args='')
click to toggle source
# File lib/facturama/services/http_service.rb, line 18 def get(args='') res=RestClient::Request.new( :method => :get, :url => url(args), :user => @connection_info.facturama_user, :password => @connection_info.facturama_password , :headers => {:accept => :json, :content_type => :json, :user_agent => '', } ) executor(res) end
post(message, args = "")
click to toggle source
# File lib/facturama/services/http_service.rb, line 36 def post(message, args = "") json =message.to_json res= RestClient::Request.new( :method => :post, :url => url(args), :user => @connection_info.facturama_user, :password => @connection_info.facturama_password, :payload => json, :headers => { :content_type => :json } ) executor(res) end
put(message, args = "")
click to toggle source
# File lib/facturama/services/http_service.rb, line 55 def put(message, args = "") json =message.to_json res= RestClient::Request.new( :method => :put, :url => url(args), :user => @connection_info.facturama_user, :password => @connection_info.facturama_password , :payload => json, :headers => {:accept => :json, :content_type => :json} ) executor(res) end
Private Instance Methods
executor(request)
click to toggle source
Executa la peticion y procesa la respuesta decodificando el JSON a un Hash y Conviriendo los errores de la API en FacturamaExceptions
# File lib/facturama/services/http_service.rb, line 111 def executor(request) begin response = request.execute if response.code != 204 && response.body != "" # 204 = sin contenido JSON[ response] end #exceptions rescue Exception => e case e.class.name when "RestClient::NotFound" raise( FacturamaException.new( "404 NotFound: Elemento no encontrado" ) ) when "RestClient::BadRequest" json_response = JSON[e.response] model_state = json_response['ModelState'] if model_state != nil model_state = json_response['ModelState'].map{|k,v| [k.to_s, v]} fact_exception = FacturamaException.new( json_response['Message'] ) end fact_exception = FacturamaException.new( json_response['Message'], model_state ) raise( fact_exception ) else raise( Exception.new( e.response ) ) end end end
url(args = '')
click to toggle source
# File lib/facturama/services/http_service.rb, line 93 def url(args = '') slash = "" args = args.to_s if args.length > 0 slash = (args =~ /^\?/)? "" : "/" end if(@uri_resource.length > 0) @uri_resource = "/" + @uri_resource; end @connection_info.uri_base + @uri_resource + slash + args end