class Reporting::Threoze::ReceiptJob < Reporting::Job
  def process
    @params.transform_keys!(&:to_sym)
    invoice = api_service(:show)

    create_tmp_file

    File.open(@tmp_file.path, 'wb') { |file| file << api_service(:pdf) }
    @filename = "Sycamore_Receipt_#{invoice['invoice_number']}_#{timestamp}.pdf"

    save_to_user
    send_report
  end

  def api_service(action_name)
    Threoze::InvoiceService.call(@school, action_name, @params)
  end
end
