class FreeAgent::CreditNotesResource

Public Instance Methods

create(contact:, dated_on:, payment_terms_in_days: 0, **params) click to toggle source
# File lib/free_agent/resources/credit_notes.rb, line 30
def create(contact:, dated_on:, payment_terms_in_days: 0, **params)
  attributes = {contact: contact, dated_on: dated_on, payment_terms_in_days: payment_terms_in_days}

  response = post_request("credit_notes", body: {credit_note: attributes.merge(params)})
  CreditNote.new(response.body["credit_note"]) if response.success?
end
delete(id:) click to toggle source
# File lib/free_agent/resources/credit_notes.rb, line 47
def delete(id:)
  response = delete_request("credit_notes/#{id}")
  response.success?
end
email(id:, to:, **params) click to toggle source
# File lib/free_agent/resources/credit_notes.rb, line 52
def email(id:, to:, **params)
  attributes = {to: to}
  response = post_request("credit_notes/#{id}/send_email", body: {credit_note: {email: attributes.merge(params)}})
  response.success?
end
list(**params) click to toggle source
# File lib/free_agent/resources/credit_notes.rb, line 4
def list(**params)
  response = get_request("credit_notes", params: params)
  Collection.from_response(response, type: CreditNote, key: "credit_notes")
end
list_for_contact(contact:, **params) click to toggle source
# File lib/free_agent/resources/credit_notes.rb, line 9
def list_for_contact(contact:, **params)
  response = get_request("credit_notes?contact=#{contact}", params: params)
  Collection.from_response(response, type: CreditNote, key: "credit_notes")
end
list_for_project(project:, **params) click to toggle source
# File lib/free_agent/resources/credit_notes.rb, line 14
def list_for_project(project:, **params)
  response = get_request("credit_notes?project=#{project}", params: params)
  Collection.from_response(response, type: CreditNote, key: "credit_notes")
end
mark_as_cancelled(id:) click to toggle source
# File lib/free_agent/resources/credit_notes.rb, line 68
def mark_as_cancelled(id:)
  response = put_request("credit_notes/#{id}/transitions/mark_as_cancelled", body: {})
  response.success?
end
mark_as_draft(id:) click to toggle source
# File lib/free_agent/resources/credit_notes.rb, line 63
def mark_as_draft(id:)
  response = put_request("credit_notes/#{id}/transitions/mark_as_draft", body: {})
  response.success?
end
mark_as_sent(id:) click to toggle source
# File lib/free_agent/resources/credit_notes.rb, line 58
def mark_as_sent(id:)
  response = put_request("credit_notes/#{id}/transitions/mark_as_sent", body: {})
  response.success?
end
retrieve(id:) click to toggle source
# File lib/free_agent/resources/credit_notes.rb, line 19
def retrieve(id:)
  response = get_request("credit_notes/#{id}")
  CreditNote.new(response.body["credit_note"])
end
retrieve_pdf(id:) click to toggle source

Returns a Base64-encoded PDF

# File lib/free_agent/resources/credit_notes.rb, line 25
def retrieve_pdf(id:)
  response = get_request("credit_notes/#{id}/pdf")
  response.body["pdf"]["content"] if response.success?
end
update(id:, **params) click to toggle source

def duplicate(id:)

response = post_request("invoices/#{id}/duplicate", body: {})
Invoice.new(response.body["invoice"]) if response.success?

end

# File lib/free_agent/resources/credit_notes.rb, line 42
def update(id:, **params)
  response = put_request("credit_notes/#{id}", body: {credit_note: params})
  CreditNote.new(response.body["credit_note"]) if response.success?
end