class Admin::Threoze::InvoicesController < Admin::Controller
  def index
    render_success :ok, json: api_service.map { |i| invoice_props(i) }
  end

  def show
    render_success :ok, json: invoice_props(api_service)
  end

  def pdf
    send_data api_service
  end

  private
    def api_service
      Threoze::InvoiceService.call(current_school, action_name, params)
    end

    def invoice_props(invoice)
      {
        id: invoice['id'],
        tracking_number: invoice['invoice_number'],
        posted_on: invoice['posted_on'],
        due_date: invoice['due_date'],
        past_due: invoice['past_due'],
        paid_date: invoice['received_date'],
        total: invoice['invoice_amount'],
        balance: invoice['balance']
      }
    end
end
