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