Class: FreshBooks::Project

Inherits:
Object
  • Object
show all
Defined in:
lib/freshbooks.rb

Constant Summary collapse

TYPE_MAPPINGS =
{ 'project_id' => Fixnum, 'client_id' => Fixnum,
  'rate' => Float, 'tasks' => Array
}

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeProject

Returns a new instance of Project.



498
499
500
501
# File 'lib/freshbooks.rb', line 498

def initialize
  super
  self.tasks ||= []
end

Class Method Details

.delete(project_id) ⇒ Object



528
529
530
531
532
# File 'lib/freshbooks.rb', line 528

def self.delete(project_id)
  resp = FreshBooks::call_api('project.delete', 'project_id' => project_id)

  resp.success?
end

.get(project_id) ⇒ Object



518
519
520
521
522
# File 'lib/freshbooks.rb', line 518

def self.get(project_id)
  resp = FreshBooks::call_api('project.get', 'project_id' => project_id)

  resp.success? ? self.new_from_xml(resp.elements[1]) : nil
end

.list(options = {}) ⇒ Object



534
535
536
537
538
539
540
541
542
# File 'lib/freshbooks.rb', line 534

def self.list(options = {})
  resp = FreshBooks::call_api('project.list', options)

  return nil unless resp.success?

  project_elems = resp.elements[1].elements

  project_elems.map { |elem| self.new_from_xml(elem) }
end

Instance Method Details

#createObject



503
504
505
506
507
508
509
510
# File 'lib/freshbooks.rb', line 503

def create
  resp = FreshBooks::call_api('project.create', 'project' => self)
  if resp.success?
    self.project_id = resp.elements[1].text.to_i
  end

  resp.success? ? self.project_id : nil
end

#deleteObject



524
525
526
# File 'lib/freshbooks.rb', line 524

def delete
  Project::delete(self.project_id)
end

#updateObject



512
513
514
515
516
# File 'lib/freshbooks.rb', line 512

def update
  resp = FreshBooks::call_api('project.update', 'project' => self)

  resp.success?
end