lib/stripe/resources/invoice.rb in stripe-12.0.0 vs lib/stripe/resources/invoice.rb in stripe-12.1.0

- old
+ new

@@ -47,10 +47,30 @@ "invoice" end nested_resource_class_methods :line, operations: %i[list] + # Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + def add_lines(params = {}, opts = {}) + request_stripe_object( + method: :post, + path: format("/v1/invoices/%<invoice>s/add_lines", { invoice: CGI.escape(self["id"]) }), + params: params, + opts: opts + ) + end + + # Adds multiple line items to an invoice. This is only possible when an invoice is still a draft. + def self.add_lines(invoice, params = {}, opts = {}) + request_stripe_object( + method: :post, + path: format("/v1/invoices/%<invoice>s/add_lines", { invoice: CGI.escape(invoice) }), + params: params, + opts: opts + ) + end + # This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you [finalize the invoice, which allows you to [pay](#pay_invoice) or <a href="#send_invoice">send](https://stripe.com/docs/api#finalize_invoice) the invoice to your customers. def self.create(params = {}, opts = {}) request_stripe_object(method: :post, path: "/v1/invoices", params: params, opts: opts) end @@ -163,10 +183,30 @@ params: params, opts: opts ) end + # Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + def remove_lines(params = {}, opts = {}) + request_stripe_object( + method: :post, + path: format("/v1/invoices/%<invoice>s/remove_lines", { invoice: CGI.escape(self["id"]) }), + params: params, + opts: opts + ) + end + + # Removes multiple line items from an invoice. This is only possible when an invoice is still a draft. + def self.remove_lines(invoice, params = {}, opts = {}) + request_stripe_object( + method: :post, + path: format("/v1/invoices/%<invoice>s/remove_lines", { invoice: CGI.escape(invoice) }), + params: params, + opts: opts + ) + end + def self.search(params = {}, opts = {}) request_stripe_object(method: :get, path: "/v1/invoices/search", params: params, opts: opts) end def self.search_auto_paging_each(params = {}, opts = {}, &blk) @@ -216,9 +256,29 @@ # auto_advance=false. def self.update(id, params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/invoices/%<id>s", { id: CGI.escape(id) }), + params: params, + opts: opts + ) + end + + # Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + def update_lines(params = {}, opts = {}) + request_stripe_object( + method: :post, + path: format("/v1/invoices/%<invoice>s/update_lines", { invoice: CGI.escape(self["id"]) }), + params: params, + opts: opts + ) + end + + # Updates multiple line items on an invoice. This is only possible when an invoice is still a draft. + def self.update_lines(invoice, params = {}, opts = {}) + request_stripe_object( + method: :post, + path: format("/v1/invoices/%<invoice>s/update_lines", { invoice: CGI.escape(invoice) }), params: params, opts: opts ) end