Sha256: 3e4befaed5fb6ae9f1913cca4a4abf6fd0d31813a089649b4eb8e76a16a73259

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 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

      if response.code != '201'
        puts 'Error pushing string update to Accent'
        exit 1
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
aigu-0.4.5 lib/aigu/pusher.rb
aigu-0.4.4 lib/aigu/pusher.rb