Method: Creatary::API.dispatch_to_server
- Defined in:
- lib/creatary/api.rb
.dispatch_to_server(http_method, endpoint, user, payload = '') ⇒ Object
Dispatches the request to the Creatary REST API
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 67 68 69 70 71 72 |
# File 'lib/creatary/api.rb', line 41 def self.dispatch_to_server(http_method, endpoint, user, payload='') consumer = create_oauth_consumer access_token = OAuth::AccessToken.new(consumer, user.access_token, user.token_secret) if (http_method == :get) response = access_token.send(http_method, endpoint, {'Content-Type' => 'application/json'}) else response = access_token.send(http_method, endpoint, payload, {'Content-Type' => 'application/json'}) end if response.class == Net::HTTPOK return response.body elsif response.class == Net:: LOGGER.error 'Request not authorized ' + response. + ', ' + response.body raise RequestNotAuthorized.new(response., response.body) elsif response.class == Net::HTTPBadRequest if response.body.include? 'consumer_key_unknown' LOGGER.error 'Configured Creatary consumer_key is not valid: ' + response. + ', ' + response.body raise InvalidConsumerKey.new(response., response.body) elsif response.body.include? 'signature_invalid' LOGGER.error 'Configured Creatary consumer_secret is not valid: ' + response. + ', ' + response.body raise InvalidConsumerSecret.new(response., response.body) else raise UnexpectedError.new(response., response.body) end elsif response.class == Net::HTTPServiceUnavailable LOGGER.error 'Creatary service ' + endpoint + ' not available' raise ServiceUnavailable.new(response., response.body) else raise UnexpectedError.new(response., response.body) end end |