Class: Slk::Models::SavedItem
- Inherits:
-
Data
- Object
- Data
- Slk::Models::SavedItem
- Defined in:
- lib/slk/models/saved_item.rb
Overview
Represents a saved/later item from Slack’s saved.list API rubocop:disable Metrics/ParameterLists
Instance Attribute Summary collapse
-
#date_completed ⇒ Object
readonly
Returns the value of attribute date_completed.
-
#date_created ⇒ Object
readonly
Returns the value of attribute date_created.
-
#date_due ⇒ Object
readonly
Returns the value of attribute date_due.
-
#is_archived ⇒ Object
readonly
Returns the value of attribute is_archived.
-
#item_id ⇒ Object
(also: #channel_id)
readonly
Returns the value of attribute item_id.
-
#item_type ⇒ Object
readonly
Returns the value of attribute item_type.
-
#state ⇒ Object
readonly
Returns the value of attribute state.
-
#ts ⇒ Object
readonly
Returns the value of attribute ts.
Class Method Summary collapse
-
.from_api(data) ⇒ Object
rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity.
Instance Method Summary collapse
- #archived? ⇒ Boolean
-
#completed? ⇒ Boolean
State predicates.
- #completed_time ⇒ Object
- #created_time ⇒ Object
-
#due_date? ⇒ Boolean
Due date helpers.
- #due_time ⇒ Object
- #in_progress? ⇒ Boolean
-
#initialize(item_id:, item_type: 'message', ts: nil, state: SAVED_STATE_SAVED, date_created: nil, date_due: nil, date_completed: nil, is_archived: false) ⇒ SavedItem
constructor
rubocop:disable Naming/MethodParameterName.
- #overdue? ⇒ Boolean
- #saved? ⇒ Boolean
-
#time_until_due ⇒ Object
Time until/since due date.
Constructor Details
#initialize(item_id:, item_type: 'message', ts: nil, state: SAVED_STATE_SAVED, date_created: nil, date_due: nil, date_completed: nil, is_archived: false) ⇒ SavedItem
rubocop:disable Naming/MethodParameterName
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/slk/models/saved_item.rb', line 46 def initialize( item_id:, item_type: 'message', ts: nil, state: SAVED_STATE_SAVED, date_created: nil, date_due: nil, date_completed: nil, is_archived: false ) super( item_id: item_id.to_s.freeze, item_type: item_type.to_s.freeze, ts: ts&.to_s&.freeze, state: state.to_s.freeze, date_created: date_created, date_due: date_due, date_completed: date_completed, is_archived: is_archived ) end |
Instance Attribute Details
#date_completed ⇒ Object (readonly)
Returns the value of attribute date_completed
12 13 14 |
# File 'lib/slk/models/saved_item.rb', line 12 def date_completed @date_completed end |
#date_created ⇒ Object (readonly)
Returns the value of attribute date_created
12 13 14 |
# File 'lib/slk/models/saved_item.rb', line 12 def date_created @date_created end |
#date_due ⇒ Object (readonly)
Returns the value of attribute date_due
12 13 14 |
# File 'lib/slk/models/saved_item.rb', line 12 def date_due @date_due end |
#is_archived ⇒ Object (readonly)
Returns the value of attribute is_archived
12 13 14 |
# File 'lib/slk/models/saved_item.rb', line 12 def is_archived @is_archived end |
#item_id ⇒ Object (readonly) Also known as: channel_id
Returns the value of attribute item_id
12 13 14 |
# File 'lib/slk/models/saved_item.rb', line 12 def item_id @item_id end |
#item_type ⇒ Object (readonly)
Returns the value of attribute item_type
12 13 14 |
# File 'lib/slk/models/saved_item.rb', line 12 def item_type @item_type end |
#state ⇒ Object (readonly)
Returns the value of attribute state
12 13 14 |
# File 'lib/slk/models/saved_item.rb', line 12 def state @state end |
#ts ⇒ Object (readonly)
Returns the value of attribute ts
12 13 14 |
# File 'lib/slk/models/saved_item.rb', line 12 def ts @ts end |
Class Method Details
.from_api(data) ⇒ Object
rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/slk/models/saved_item.rb', line 23 def self.from_api(data) new( item_id: data['item_id'] || data['channel_id'] || data['conversation_id'], item_type: data['item_type'] || data['type'] || 'message', ts: data['ts'] || data['message_ts'], state: data['state'] || SAVED_STATE_SAVED, date_created: (data['date_created']), date_due: (data['date_due']), date_completed: (data['date_completed']), is_archived: data['is_archived'] || false ) end |
Instance Method Details
#archived? ⇒ Boolean
85 86 87 |
# File 'lib/slk/models/saved_item.rb', line 85 def archived? is_archived end |
#completed? ⇒ Boolean
State predicates
73 74 75 |
# File 'lib/slk/models/saved_item.rb', line 73 def completed? state == SAVED_STATE_COMPLETED end |
#completed_time ⇒ Object
113 114 115 116 117 |
# File 'lib/slk/models/saved_item.rb', line 113 def completed_time return nil unless date_completed Time.at(date_completed) end |
#created_time ⇒ Object
107 108 109 110 111 |
# File 'lib/slk/models/saved_item.rb', line 107 def created_time return nil unless date_created Time.at(date_created) end |
#due_date? ⇒ Boolean
Due date helpers
90 91 92 |
# File 'lib/slk/models/saved_item.rb', line 90 def due_date? !date_due.nil? end |
#due_time ⇒ Object
101 102 103 104 105 |
# File 'lib/slk/models/saved_item.rb', line 101 def due_time return nil unless due_date? Time.at(date_due) end |
#in_progress? ⇒ Boolean
77 78 79 |
# File 'lib/slk/models/saved_item.rb', line 77 def in_progress? state == SAVED_STATE_IN_PROGRESS end |
#overdue? ⇒ Boolean
94 95 96 97 98 99 |
# File 'lib/slk/models/saved_item.rb', line 94 def overdue? return false unless due_date? return false if completed? date_due < Time.now.to_i end |
#saved? ⇒ Boolean
81 82 83 |
# File 'lib/slk/models/saved_item.rb', line 81 def saved? state == SAVED_STATE_SAVED end |
#time_until_due ⇒ Object
Time until/since due date
120 121 122 123 124 |
# File 'lib/slk/models/saved_item.rb', line 120 def time_until_due return nil unless due_date? date_due - Time.now.to_i end |