module Aigu class Pusher PUSH_PATH = '/public_api/revisions' def initialize(opts = {}) @input_file = opts[:'input-file'] @accent_api_key = opts[:'accent-api-key'] @accent_url = opts[:'accent-url'] end def process! puts "Sending JSON file `#{@input_file}` to Accent" puts '---' send puts '---' puts 'Done' end protected def send payload = File.read(@input_file) file_name = @input_file.rpartition(File::SEPARATOR).last uri = URI(@accent_url + PUSH_PATH) http = Net::HTTP.new(uri.host, uri.port) uri.scheme == 'https' && http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(uri) request.add_field('Authorization', @accent_api_key) request.add_field('Content-Type', 'application/json') request.body = JSON.pretty_generate(JSON.parse({ revision: { file: payload, filename: file_name } }.to_json)) response = http.request(request) puts 'Response: ' + response.code if response.code != '201' puts 'Error pushing string update to Accent' exit 1 end end end end