Skip to content

Commit 522a410

Browse files
committed
WIP PR comments
1 parent ff2a507 commit 522a410

3 files changed

Lines changed: 32 additions & 15 deletions

File tree

lib/intelligent_foods/api_client.rb

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,35 @@ def authenticate!
2424
self
2525
end
2626

27-
def execute_request(request:, uri:, body: nil,
28-
authorization: default_authorization)
29-
Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
30-
request["Authorization"] = authorization.header
31-
assign_body request: request, body: body
32-
response = http.request(request)
33-
handle_response(response: response)
34-
end
27+
def build_patch_request(uri:, body: nil)
28+
build_request_with_body(uri: uri, body: body,
29+
http_method: Net::HTTP::Patch)
3530
end
3631

37-
def build_patch_request(uri:, body:)
32+
def build_post_request(uri:, body: nil)
3833
build_request_with_body(uri: uri, body: body,
39-
http_method: Net::HTTP::Patch)
34+
http_method: Net::HTTP::Post)
4035
end
4136

42-
def build_request_with_body(uri:, body:, http_method: Net::HTTP::Post)
37+
def build_request_with_body(uri:, body:, http_method:)
4338
request = http_method.new(uri)
44-
request.body = body.to_json
4539
request["content-type"] = "application/json"
40+
unless body.nil?
41+
request.body = body.to_json
42+
end
4643
request
4744
end
4845

46+
def execute_request(request:, uri:, body: nil,
47+
authorization: default_authorization)
48+
Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
49+
request["Authorization"] = authorization.header
50+
assign_body request: request, body: body
51+
response = http.request(request)
52+
handle_response(response: response)
53+
end
54+
end
55+
4956
def authenticated?
5057
access_token.present?
5158
end

lib/intelligent_foods/resources/order.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def self.build_from_response(data)
2222

2323
def create!
2424
uri = URI("#{IntelligentFoods.base_url}/order")
25-
request = client.build_request_with_body(uri: uri, body: request_body)
25+
request = client.build_post_request(uri: uri, body: request_body)
2626
response = client.execute_request(request: request, uri: uri)
2727
if response.success?
2828
Order::build_from_response(response.data)
@@ -53,7 +53,7 @@ def update!
5353
Order::build_from_response(response.data)
5454
else
5555
mark_as_invalid
56-
raise_error(OrderNotUpdatedError, response)
56+
raise OrderNotUpdatedError.build(response)
5757
end
5858
end
5959

@@ -68,7 +68,7 @@ def request_body
6868
end
6969

7070
def update_request_body
71-
@update_request_body ||= {
71+
{
7272
ship_to: ship_to,
7373
}
7474
end

spec/intelligent_foods/api_client_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,16 @@
175175
end
176176
end
177177

178+
describe "#build_post_request" do
179+
it "builds a request using the Post HTTP method" do
180+
client = IntelligentFoods::ApiClient.new(id: "id", secret: "secret")
181+
182+
result = client.build_post_request(uri: "test.com", body: {})
183+
184+
expect(result.method).to eq("POST")
185+
end
186+
end
187+
178188
describe "#authenticated?" do
179189
it "is not authenticated" do
180190
client = IntelligentFoods::ApiClient.new(id: "id", secret: "secret")

0 commit comments

Comments
 (0)