Sha256: 5ecc8c0126701d5ff07cfb891ce6f683367b657711c8663ca9b4bed2ced51e78
Contents?: true
Size: 1.13 KB
Versions: 4
Compression:
Stored size: 1.13 KB
Contents
module Mbsy class MbsyError < StandardError; end class BadRequestError < MbsyError; end class UnauthorizedError < MbsyError; end class RecordNotFound < MbsyError; end class ServerError < MbsyError; end class BadResponse < MbsyError; end class Base include HTTParty format :json default_timeout 30 default_params :output => 'json' def self.element_name name.split(/::/).last.underscore end def self.api_url(method) Mbsy.site_uri + self.element_name + '/' + method end def self.call(method, params = {}) response = JSON.parse(self.get(api_url(method), :query => params).body)['response'] case response['code'] when '200' # Nothing to do here... when '400' raise BadRequestError.new(response['errors']['error']) when '401' raise UnauthorizedError.new(response['errors']['error']) when '404' raise RecordNotFound.new(response['errors']['error']) when '500' raise ServerError.new(response['errors']['error']) else raise BadResponse.new(response: response) end response['data'] end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
mbsy-1.1.3 | lib/mbsy/resources/base.rb |
mbsy-1.1.2 | lib/mbsy/resources/base.rb |
mbsy-1.1.1 | lib/mbsy/resources/base.rb |
mbsy-1.1.0 | lib/mbsy/resources/base.rb |