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

Add support for v1/issuer_fraud_records endpoint #645

Merged
merged 6 commits into from
May 9, 2018
Merged
Show file tree
Hide file tree
Changes from 4 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/stripe.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
require "stripe/invoice"
require "stripe/invoice_item"
require "stripe/invoice_line_item"
require "stripe/issuer_fraud_record"
require "stripe/login_link"
require "stripe/order"
require "stripe/order_return"
Expand Down
21 changes: 21 additions & 0 deletions lib/stripe/issuer_fraud_record.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
module Stripe
class IssuerFraudRecord < APIResource
extend Stripe::APIOperations::List

OBJECT_NAME = "issuer_fraud_record".freeze

def self.from_charge(params, opts = {})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fay-stripe I don't think we need this because the built-in list method will accept optional parameters that allow you to pass a charge. Here's an example of it in action for invoices:

charges = Stripe::Invoice.list(customer: "cus_123")

resp, opts = request(:get, from_charge_url, params, opts)
Util.convert_to_stripe_object(resp.data, opts)
end

def self.from_charge_url
resource_url
end
private_class_method :from_charge_url

def self.resource_url
"/v1/issuer_fraud_records"
end
end
end
1 change: 1 addition & 0 deletions lib/stripe/util.rb
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ def self.object_classes
Invoice::OBJECT_NAME => Invoice,
InvoiceItem::OBJECT_NAME => InvoiceItem,
InvoiceLineItem::OBJECT_NAME => InvoiceLineItem,
IssuerFraudRecord::OBJECT_NAME => IssuerFraudRecord,
LoginLink::OBJECT_NAME => LoginLink,
Order::OBJECT_NAME => Order,
OrderReturn::OBJECT_NAME => OrderReturn,
Expand Down
30 changes: 30 additions & 0 deletions test/stripe/issuer_fraud_record_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
require File.expand_path("../../test_helper", __FILE__)

module Stripe
class IssuerFraudRecordTest < Test::Unit::TestCase
should "be listable" do
issfrs = Stripe::IssuerFraudRecord.list
assert_requested :get, "#{Stripe.api_base}/v1/issuer_fraud_records"
assert issfrs.data.is_a?(Array)
assert issfrs.data[0].is_a?(Stripe::IssuerFraudRecord)
end

should "be listable by charge id" do
issfrs = Stripe::IssuerFraudRecord.from_charge(
charge: "ch_123",
)
assert_requested :get, "#{Stripe.api_base}/v1/issuer_fraud_records",
query: {
charge: "ch_123",
}
assert issfrs.data.is_a?(Array)
assert issfrs.data[0].is_a?(Stripe::IssuerFraudRecord)
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's also take this test out — in practice it won't really be exercising a different code path (and we already have tests around the core list functionality).


should "be retrievable" do
issfr = Stripe::IssuerFraudRecord.retrieve("issfr_123")
assert_requested :get, "#{Stripe.api_base}/v1/issuer_fraud_records/issfr_123"
assert issfr.is_a?(Stripe::IssuerFraudRecord)
end
end
end