Class: Harvest::API::Expenses

Inherits:
Base
  • Object
show all
Includes:
Behavior::Crud
Defined in:
lib/harvest/api/expenses.rb

Instance Attribute Summary

Attributes inherited from Base

#credentials

Instance Method Summary collapse

Methods included from Behavior::Crud

#create, #delete, #find, #update

Methods inherited from Base

api_model, #initialize

Constructor Details

This class inherits a constructor from Harvest::API::Base

Instance Method Details

#all(date = ::Time.now, user = nil) ⇒ Object


8
9
10
11
12
# File 'lib/harvest/api/expenses.rb', line 8

def all(date = ::Time.now, user = nil)
  date = ::Time.parse(date) if String === date
  response = request(:get, credentials, "#{api_model.api_path}/#{date.yday}/#{date.year}", :query => of_user_query(user))
  api_model.parse(response.parsed_response)
end

#attach(expense, filename, receipt) ⇒ Object


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/harvest/api/expenses.rb', line 14

def attach(expense, filename, receipt)
  body = ""
  body << "--__X_ATTACH_BOUNDARY__\r\n"
  body << %Q{Content-Disposition: form-data; name="expense[receipt]"; filename="#{filename}"\r\n}
  body << "\r\n#{receipt.read}"
  body << "\r\n--__X_ATTACH_BOUNDARY__--\r\n\r\n"

  request(
    :post,
    credentials,
    "#{api_model.api_path}/#{expense.to_i}/receipt",
    :headers => {
      'Content-Type' => 'multipart/form-data; charset=utf-8; boundary=__X_ATTACH_BOUNDARY__',
      'Content-Length' => body.length.to_s,
    },
    :body => body)
end