Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Api client #1

Merged
merged 3 commits into from
Apr 30, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
Prev Previous commit
Complete endpoints and specs
  • Loading branch information
acreilly committed Apr 29, 2020
commit 11a1b209024ced9acb3b056d5ebb0e5bbcb06f53
15 changes: 15 additions & 0 deletions lib/extend_warranties/api/contracts.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,21 @@ module ExtendWarranties
module Api
class Contracts < Base

def create(store_id, args = {})
raise ArgumentError, 'store_id is required' if store_id.blank?

resp = connection.post "/stores/#{store_id}/contracts", args
handle_response(resp)
end

def refund(store_id, contract_id, args = {})
raise ArgumentError, 'store_id is required' if store_id.blank?
raise ArgumentError, 'contract_id is required' if contract_id.blank?

resp = connection.post "/stores/#{store_id}/contracts/#{contract_id}/refund", args
handle_response(resp)
end

def get_invoice(store_id, contract_id, args = {})
raise ArgumentError, 'store_id is required' if store_id.blank?
raise ArgumentError, 'contract_id is required' if contract_id.blank?
Expand Down
2 changes: 1 addition & 1 deletion lib/extend_warranties/api/offers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ def find_by_id(store_id, product_id, args = {})
raise ArgumentError, 'store_id is required' if store_id.blank?
raise ArgumentError, 'product_id is required' if product_id.blank?

resp = connection.get "/offers?storeId={storeId}&productId={productId}", args
resp = connection.get "/offers?storeId=#{store_id}&productId=#{product_id}", args
handle_response(resp)
end
end
Expand Down
3 changes: 1 addition & 2 deletions lib/extend_warranties/api/plans.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ module Api
class Plans < Base

def all(store_id, args = {})
# Think about passing store id in args
resp = connection.get "/offers/list?={${store_id}}", args
resp = connection.get "/offers/list?storeId=#{store_id}", args

handle_response(resp)
end
Expand Down
7 changes: 7 additions & 0 deletions lib/extend_warranties/api/products.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ def create(store_id, args = {})
handle_response(resp)
end

def update(store_id, product_id, args = {})
raise ArgumentError, 'store_id is required' if store_id.blank?

resp = connection.put "/stores/#{store_id}/products/#{product_id}", args
handle_response(resp)
end

def find_by_id(store_id, product_id, args = {})
raise ArgumentError, 'store_id is required' if store_id.blank?
raise ArgumentError, 'product_id is required' if product_id.blank?
Expand Down
56 changes: 56 additions & 0 deletions spec/lib/extend_warranties/api/contracts_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
require 'spec_helper'

RSpec.describe ExtendWarranties::Api::Contracts, :vcr do
let(:access_token) { ENV['EXTEND_ACCESS_TOKEN'] }
let(:store_id) { ENV['EXTEND_STORE_ID'] }
let(:env) { :sandbox }

let(:client) do
ExtendWarranties::Client.new(
access_token: access_token,
store_id: store_id,
env: env
)
end

describe '#create' do
let(:params) {
{
'transactionId': 'c57ed096-24ef-49a4-a20a-d1b8bf770980',
'transactionDate': 1588172123,
'currency': 'USD',
'customer': {
'email': 'acreilly3@gmail.com',
'name': 'Allison'
},
'product': {
'referenceId': '2324f800-7575-4c65-bd2c-22',
'purchasePrice': 3599
},
'plan': {
'purchasePrice': 3599,
'planId': '10001-auto-part-base-replace-1y'
}
}
}

subject { client.contracts.create(store_id, params) }
its(:success?) { is_expected.to eql true }
end

# describe '#refund' do
# let(:contract_id) { '06d6e4ac-1878-4a71-8f0f-1f5e34efdd94' }

# subject { client.contracts.refund(store_id, contract_id) }
# its(:success?) { is_expected.to eql true }
# end

describe '#get_invoice' do
let(:contract_id) { 'fc893e2f-a368-46b6-b5b0-9525bf666b30' }

subject { client.contracts.get_invoice(store_id, contract_id) }
its(:success?) { is_expected.to eql true }
end
end


21 changes: 21 additions & 0 deletions spec/lib/extend_warranties/api/offers_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
require 'spec_helper'

RSpec.describe ExtendWarranties::Api::Offers, :vcr do
let(:access_token) { ENV['EXTEND_ACCESS_TOKEN'] }
let(:store_id) { ENV['EXTEND_STORE_ID'] }
let(:env) { :sandbox }

let(:client) do
ExtendWarranties::Client.new(
access_token: access_token,
store_id: store_id,
env: env
)
end

describe '#find_by_id' do
let(:product_id) { '2324f800-7575-4c65-bd2c-588c89e8ab7f' }
subject { client.offers.find_by_id(store_id, product_id) }
its(:success?) { is_expected.to eql true }
end
end
22 changes: 22 additions & 0 deletions spec/lib/extend_warranties/api/plans_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
require 'spec_helper'

RSpec.describe ExtendWarranties::Api::Plans, :vcr do
let(:access_token) { ENV['EXTEND_ACCESS_TOKEN'] }
let(:store_id) { ENV['EXTEND_STORE_ID'] }
let(:env) { :sandbox }

let(:client) do
ExtendWarranties::Client.new(
access_token: access_token,
store_id: store_id,
env: env
)
end

describe '#all' do
subject { client.plans.all(store_id) }
its(:success?) { is_expected.to eql true }
end
end


15 changes: 13 additions & 2 deletions spec/lib/extend_warranties/api/products_spec.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
require 'spec_helper'
require 'pry'

RSpec.describe ExtendWarranties::Api::Products, :vcr do
let(:access_token) { ENV['EXTEND_ACCESS_TOKEN'] }
Expand Down Expand Up @@ -32,8 +31,20 @@
its(:success?) { is_expected.to eql true }
end

describe '#update' do
let(:product_id) { '2324f800-7575-4c65-bd2c-22' }
let(:params) {
{
'price': 3599
}
}

subject { client.products.update(store_id, product_id, params) }
its(:success?) { is_expected.to eql true }
end

# describe '#delete' do
# let(:reference_id) { '2324f800-7575-4c65-bd2c-22' }
# let(:reference_id) { '6789012345' }

# subject { client.products.delete(store_id, reference_id) }
# its(:success?) { is_expected.to eql true }
Expand Down
2 changes: 1 addition & 1 deletion spec/lib/extend_warranties/client_spec.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
require 'spec_helper'
require 'pry'

RSpec.describe ExtendWarranties::Client do
let(:access_token) { ENV['EXTEND_ACCESS_TOKEN'] }
let(:store_id) { ENV['EXTEND_STORE_ID'] }
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading