class Harvest::API::InvoiceMessages
Public Instance Methods
all(invoice)
click to toggle source
# File lib/forecast/api/invoice_messages.rb, line 7 def all(invoice) response = request(:get, credentials, "/invoices/#{invoice.to_i}/messages") api_model.parse(response.parsed_response) end
create(message)
click to toggle source
# File lib/forecast/api/invoice_messages.rb, line 17 def create(message) message = api_model.wrap(message) response = request(:post, credentials, "/invoices/#{message.invoice_id}/messages", :body => message.to_json) id = response.headers["location"].match(/\/.*\/(\d+)\/.*\/(\d+)/)[2] find(message.invoice_id, id) end
delete(message)
click to toggle source
# File lib/forecast/api/invoice_messages.rb, line 24 def delete(message) request(:delete, credentials, "/invoices/#{message.invoice_id}/messages/#{message.to_i}") message.id end
find(invoice, message)
click to toggle source
# File lib/forecast/api/invoice_messages.rb, line 12 def find(invoice, message) response = request(:get, credentials, "/invoices/#{invoice.to_i}/messages/#{message.to_i}") api_model.parse(response.parsed_response).first end
mark_as_closed(message)
click to toggle source
Create a message and mark an open invoice as closed (writing an invoice off)
@param [Harvest::InvoiceMessage] The message you want to send @return [Harvest::InvoiceMessage] The sent message
# File lib/forecast/api/invoice_messages.rb, line 41 def mark_as_closed(message) send_status_message(message, 'mark_as_closed') end
mark_as_draft(message)
click to toggle source
Create a message for marking an open invoice as draft
@param [Harvest::InvoiceMessage] The message you want to send @return [Harvest::InvoiceMessage] The sent message
# File lib/forecast/api/invoice_messages.rb, line 57 def mark_as_draft(message) send_status_message(message, 'mark_as_draft') end
mark_as_sent(message)
click to toggle source
Create a message for marking an invoice as sent.
@param [Harvest::InvoiceMessage] The message you want to send @return [Harvest::InvoiceMessage] The sent message
# File lib/forecast/api/invoice_messages.rb, line 33 def mark_as_sent(message) send_status_message(message, 'mark_as_sent') end
re_open(message)
click to toggle source
Create a message and mark a closed (written-off) invoice as open
@param [Harvest::InvoiceMessage] The message you want to send @return [Harvest::InvoiceMessage] The sent message
# File lib/forecast/api/invoice_messages.rb, line 49 def re_open(message) send_status_message(message, 're_open') end
Private Instance Methods
send_status_message(message, action)
click to toggle source
# File lib/forecast/api/invoice_messages.rb, line 63 def send_status_message(message, action) message = api_model.wrap(message) response = request( :post, credentials, "/invoices/#{message.invoice_id}/messages/#{action}", :body => message.to_json ) message end