lib/octobat/invoice.rb in octobat-0.0.12 vs lib/octobat/invoice.rb in octobat-2.0.0

- old
+ new

@@ -1,37 +1,86 @@ module Octobat class Invoice < APIResource extend Octobat::APIOperations::List include Octobat::APIOperations::Create include Octobat::APIOperations::Update + + + def self.pdf_export(params = {}, opts={}) + api_key, headers = Util.parse_opts(opts) + api_key ||= @api_key + opts[:api_key] = api_key - def pay(payment_data) - response, api_key = Octobat.request(:patch, pay_url, @api_key, {payment: payment_data}) - refresh_from(response, api_key) + instance = self.new(nil, opts) + + response, api_key = Octobat.request(:post, url + '/pdf_export', api_key, params) + return true end - def send(enforce_errors = false) - response, api_key = Octobat.request(:post, send_url, @api_key, {enforce_errors: enforce_errors}) - refresh_from(response, api_key) + def self.csv_export(params = {}, opts={}) + api_key, headers = Util.parse_opts(opts) + api_key ||= @api_key + opts[:api_key] = api_key + + instance = self.new(nil, opts) + + response, api_key = Octobat.request(:post, url + '/csv_export', api_key, params) + return true end - + + def send_by_email(email_data = {}) + response, api_key = Octobat.request(:post, send_url, @api_key, email_data) + refresh_from(response, api_key) + end + def confirm response, api_key = Octobat.request(:patch, confirm_url, @api_key) refresh_from(response, api_key) end + def cancel + response, api_key = Octobat.request(:patch, cancel_url, @api_key) + refresh_from(response, api_key) + end + + def cancel_and_replace + response, api_key = Octobat.request(:patch, cancel_and_replace_url, @api_key) + refresh_from(response, api_key) + end + + def delete + response, api_key = Octobat.request(:delete, url, @api_key) + refresh_from(response, api_key) + end + + def items(params = {}) + Item.list(params.merge({ :invoice => id }), @api_key) + end + + def transactions(params = {}) + Transaction.list(params.merge(invoice: id), @api_key) + end + + private - def pay_url - url + '/pay' - end - def send_url url + '/send' end - + def confirm_url url + '/confirm' end + + def cancel_url + url + '/cancel' + end + + def cancel_and_replace_url + url + '/cancel_and_replace' + end + end + + end