Sha256: fba907882356681cd32d1bbad81e01bd612df70a50a3156157e5266cc8f241b5

Contents?: true

Size: 1.05 KB

Versions: 4

Compression:

Stored size: 1.05 KB

Contents

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
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
aigu-0.4.3 lib/aigu/pusher.rb
aigu-0.4.2 lib/aigu/pusher.rb
aigu-0.4.1 lib/aigu/pusher.rb
aigu-0.4 lib/aigu/pusher.rb