Class: Basecamp3::ScheduleEntry

Inherits:
Model
  • Object
show all
Includes:
Concerns::Bucketable, Concerns::Commentable, Concerns::Creatorable, Concerns::Parentable, Concerns::Recordingable
Defined in:
lib/basecamp3/models/schedule_entry.rb

Overview

Constant Summary

REQUIRED_FIELDS =
%w(summary starts_at ends_at)

Instance Attribute Summary collapse

Attributes included from Concerns::Commentable

#comments_count

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Concerns::Commentable

#comments

Methods included from Concerns::Recordingable

included

Methods included from Concerns::Parentable

#parent

Methods included from Concerns::Bucketable

#bucket

Methods included from Concerns::Creatorable

#creator

Methods inherited from Model

#initialize

Constructor Details

This class inherits a constructor from Basecamp3::Model

Instance Attribute Details

#all_dayObject

Returns the value of attribute all_day



11
12
13
# File 'lib/basecamp3/models/schedule_entry.rb', line 11

def all_day
  @all_day
end

#created_atObject

Returns the value of attribute created_at



11
12
13
# File 'lib/basecamp3/models/schedule_entry.rb', line 11

def created_at
  @created_at
end

#descriptionObject

Returns the value of attribute description



11
12
13
# File 'lib/basecamp3/models/schedule_entry.rb', line 11

def description
  @description
end

#ends_atObject

Returns the value of attribute ends_at



11
12
13
# File 'lib/basecamp3/models/schedule_entry.rb', line 11

def ends_at
  @ends_at
end

#idObject

Returns the value of attribute id



11
12
13
# File 'lib/basecamp3/models/schedule_entry.rb', line 11

def id
  @id
end

#starts_atObject

Returns the value of attribute starts_at



11
12
13
# File 'lib/basecamp3/models/schedule_entry.rb', line 11

def starts_at
  @starts_at
end

#statusObject

Returns the value of attribute status



11
12
13
# File 'lib/basecamp3/models/schedule_entry.rb', line 11

def status
  @status
end

#summaryObject

Returns the value of attribute summary



11
12
13
# File 'lib/basecamp3/models/schedule_entry.rb', line 11

def summary
  @summary
end

#updated_atObject

Returns the value of attribute updated_at



11
12
13
# File 'lib/basecamp3/models/schedule_entry.rb', line 11

def updated_at
  @updated_at
end

Class Method Details

.all(bucket_id, parent_id, params = {}) ⇒ Array<Basecamp3::ScheduleEntry>

Returns a paginated list of active schedule entries.

Parameters:

  • params (Hash) (defaults to: {})

    additional parameters

Options Hash (params):

  • :page (Integer) — default: optional

    to paginate results

  • :status (Integer) — default: optional

    when set to archived or trashed, will return archived or trashed schedule entries that are in this schedule

Returns:



39
40
41
# File 'lib/basecamp3/models/schedule_entry.rb', line 39

def self.all(bucket_id, parent_id, params = {})
  Basecamp3.request.get("/buckets/#{bucket_id}/schedules/#{parent_id}/entries", params, Basecamp3::ScheduleEntry)
end

.create(bucket_id, parent_id, data) ⇒ Basecamp3::ScheduleEntry

Creates a schedule entry.

and instead will be held for the entire day or days denoted in starts_at and ends_at

Parameters:

  • bucket_id (Integer)

    the id of the bucket

  • parent_id (Integer)

    the id of the schedule

  • data (Hash)

    the data to create a schedule entry with

  • params (Hash)

    a customizable set of options

Returns:



69
70
71
72
# File 'lib/basecamp3/models/schedule_entry.rb', line 69

def self.create(bucket_id, parent_id, data)
  self.validate_required(data)
  Basecamp3.request.post("/buckets/#{bucket_id}/schedules/#{parent_id}/entries", data, Basecamp3::ScheduleEntry)
end

.find(bucket_id, id) ⇒ Basecamp3::ScheduleEntry

Returns the schedule entry.

Parameters:

  • bucket_id (Integer)

    the id of the bucket

  • id (Integer)

    the id of the schedule entry

Returns:



49
50
51
# File 'lib/basecamp3/models/schedule_entry.rb', line 49

def self.find(bucket_id, id)
  Basecamp3.request.get("/buckets/#{bucket_id}/schedule_entries/#{id}", {}, Basecamp3::ScheduleEntry)
end

.update(bucket_id, id, data) ⇒ Basecamp3::ScheduleEntry

Updates the schedule entry.

and instead will be held for the entire day or days denoted in starts_at and ends_at

Parameters:

  • bucket_id (Integer)

    the id of the bucket

  • id (Integer)

    the id of the schedule entry

  • data (Hash)

    the data to update the schedule entry with

  • params (Hash)

    a customizable set of options

Returns:



89
90
91
92
# File 'lib/basecamp3/models/schedule_entry.rb', line 89

def self.update(bucket_id, id, data)
  self.validate_required(data)
  Basecamp3.request.put("/buckets/#{bucket_id}/schedule_entries/#{id}", data, Basecamp3::ScheduleEntry)
end

Instance Method Details

#participantsArray<Basecamp3::Person>

Returns a list of related participants.

Returns:



26
27
28
29
30
# File 'lib/basecamp3/models/schedule_entry.rb', line 26

def participants
  return [] if @participants.nil?

  @mapped_participants ||= @participants.map{ |p| Basecamp3::Person.new(p) }
end