class CardConnect::Service::ServiceEndpoint
Attributes
connection[R]
request[R]
resource_name[R]
response[R]
rest_method[R]
Public Class Methods
new(connection = CardConnect.connection)
click to toggle source
Parent for service endpoints (Authorization
, Capture
, etc.) This class shouldn't be called directly. Rather call the end service directly.
@param connection [CardConnect::Connection] @return CardConnect::ServiceEndpoint
# File lib/cardconnect/services/service_endpoint.rb, line 13 def initialize(connection = CardConnect.connection) @resource_name = '/' @config = CardConnect.configuration @connection = connection end
Public Instance Methods
build_request(params = {})
click to toggle source
# File lib/cardconnect/services/service_endpoint.rb, line 23 def build_request(params = {}) req = symbolize_keys(params) req = req.merge(merchid: @config.merchant_id) unless req.key?(:merchid) @request = request_class.new(req) end
path()
click to toggle source
# File lib/cardconnect/services/service_endpoint.rb, line 19 def path base_api_path + resource_name end
submit()
click to toggle source
# File lib/cardconnect/services/service_endpoint.rb, line 29 def submit raise CardConnect::Error, 'Request has not been built' if request.nil? raise CardConnect::Error, 'Rest method is required' if rest_method.nil? @response = send(rest_method) end
Private Instance Methods
base_api_path()
click to toggle source
# File lib/cardconnect/services/service_endpoint.rb, line 37 def base_api_path '/cardconnect/rest' end
delete()
click to toggle source
# File lib/cardconnect/services/service_endpoint.rb, line 47 def delete response_class.new(connection.delete(path + request.payload).body) rescue Faraday::ResourceNotFound => e puts e.message end
get()
click to toggle source
# File lib/cardconnect/services/service_endpoint.rb, line 41 def get response_class.new(connection.get(path + request.payload).body) rescue Faraday::ResourceNotFound => e puts e.message end
put()
click to toggle source
# File lib/cardconnect/services/service_endpoint.rb, line 53 def put response_class.new(connection.put(path, request.payload).body) rescue Faraday::ResourceNotFound => e puts e.message end
request_class()
click to toggle source
# File lib/cardconnect/services/service_endpoint.rb, line 59 def request_class string_to_class("#{self.class}Request") end
response_class()
click to toggle source
# File lib/cardconnect/services/service_endpoint.rb, line 63 def response_class string_to_class("#{self.class}Response") end
string_to_class(str)
click to toggle source
# File lib/cardconnect/services/service_endpoint.rb, line 67 def string_to_class(str) str.split('::').inject(Object) { |a, e| a.const_get(e) } end