# frozen_string_literal: true module Fiken module Resources module Concerns # //drafts — the draft lifecycle shared by invoices, credit notes, # offers, order confirmations, sales and purchases. class Drafts < Resource::Base include Resource::Listable include Resource::Findable include Resource::Creatable include Resource::Updatable # drafts update via PUT include Resource::Deletable def initialize(client, company_slug, parent_path, create_action) super(client, company_slug) @parent_path = parent_path @create_action = create_action end def base_path "#{@parent_path}/drafts" end def attachments(draft_id) Attachments.new(client, company_slug, "#{base_path}/#{draft_id}") end # Finalize a draft into its document (e.g. createInvoice, createSale). def create_document(draft_id, attributes = nil) post_create("#{base_path}/#{draft_id}/#{@create_action}", attributes) end end end end end