Sha256: 0711a61bdb8001a27e9d5bafaa5e68e3f46c6177501391dcff640a888983a02b
Contents?: true
Size: 1.09 KB
Versions: 15
Compression:
Stored size: 1.09 KB
Contents
require 'httparty' module Watchdocs module Rails module Recordings module Exporter class WatchdocsApiError < StandardError; end DEFAULT_ERROR = 'Unknown API Error occured.'.freeze class << self def export(payload) response = HTTParty.post( api_url, body: payload.to_json, headers: { 'Content-Type' => 'application/json' } ) check_response(response) end private def check_response(response) case response.code.to_s.chars.first when '2' true when '4', '5' raise WatchdocsApiError, get_error(response.body) else raise WatchdocsApiError, DEFAULT_ERROR end end def get_error(response_body) JSON.parse(response_body)['errors'].join(', ') rescue DEFAULT_ERROR end def api_url Watchdocs::Rails.configuration.export_url end end end end end end
Version data entries
15 entries across 15 versions & 1 rubygems