Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/easy_translate.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ module EasyTranslate

class << self
attr_accessor :api_key
attr_accessor :referer # for Google API key referer restriction
end

end
13 changes: 9 additions & 4 deletions lib/easy_translate/request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,18 +37,23 @@ def params
# @return [String] The response String
def perform_raw
# Construct the request
request = Net::HTTP::Post.new(uri.request_uri)
request.add_field('X-HTTP-Method-Override', 'GET')
request.body = body
raw_request.add_field('Referer', EasyTranslate.referer)
raw_request.add_field('X-HTTP-Method-Override', 'GET')
raw_request.body = body

# Fire and return
response = http.request(request)
response = http.request(raw_request)
unless response.code == '200'
err = JSON.parse(response.body)['error']['errors'].first['message']
raise EasyTranslateException.new(err)
end
response.body
end

def raw_request
@raw_request ||= Net::HTTP::Post.new(uri.request_uri)
end

private

def uri
Expand Down
18 changes: 18 additions & 0 deletions spec/examples/request_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,24 @@

describe EasyTranslate::Request do

describe :perform_raw do
let(:referer) { 'https://example.com' }
let(:request) { EasyTranslate::Request.new }

before do
EasyTranslate.referer = referer

allow(request).to receive(:path).and_return('')
end

it 'should set headers' do
expect(request.raw_request).to receive(:add_field).once.ordered.with('Referer', EasyTranslate.referer)
expect(request.raw_request).to receive(:add_field).once.ordered.with('X-HTTP-Method-Override', 'GET')
expect { request.perform_raw }.to raise_error JSON::ParserError
end

end

describe :path do

it 'should raise a NotImplementedError on this base class' do
Expand Down