class FreeAgent::EstimatesResource

Public Instance Methods

create(contact:, dated_on:, currency:, reference:, status: "Draft", estimate_type: "Estimate", **params) click to toggle source
# File lib/free_agent/resources/estimates.rb, line 35
def create(contact:, dated_on:, currency:, reference:, status: "Draft", estimate_type: "Estimate", **params)
  attributes = {contact: contact, dated_on: dated_on, status: status, estimate_type: estimate_type, currency: currency, reference: reference}

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

Returns a Base64-encoded PDF

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