podio 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. data/Rakefile +0 -16
  2. data/lib/podio.rb +6 -3
  3. data/lib/podio/active_podio/base.rb +53 -21
  4. data/lib/podio/active_podio/updatable.rb +9 -14
  5. data/lib/podio/client.rb +46 -17
  6. data/lib/podio/error.rb +9 -0
  7. data/lib/podio/middleware/error_response.rb +5 -1
  8. data/lib/podio/middleware/json_request.rb +27 -5
  9. data/lib/podio/models/account_provider.rb +16 -0
  10. data/lib/podio/models/app_store_category.rb +25 -0
  11. data/lib/podio/models/app_store_share.rb +90 -11
  12. data/lib/podio/models/application.rb +52 -12
  13. data/lib/podio/models/application_field.rb +4 -4
  14. data/lib/podio/models/batch.rb +31 -0
  15. data/lib/podio/models/calendar_event.rb +64 -10
  16. data/lib/podio/models/category.rb +11 -9
  17. data/lib/podio/models/contact.rb +3 -1
  18. data/lib/podio/models/contract.rb +3 -0
  19. data/lib/podio/models/email_subscription_setting.rb +26 -3
  20. data/lib/podio/models/file_attachment.rb +3 -2
  21. data/lib/podio/models/form.rb +2 -2
  22. data/lib/podio/models/importer.rb +18 -9
  23. data/lib/podio/models/item.rb +87 -22
  24. data/lib/podio/models/item_field.rb +8 -3
  25. data/lib/podio/models/linked_account.rb +11 -3
  26. data/lib/podio/models/linked_account_data.rb +6 -0
  27. data/lib/podio/models/news.rb +1 -0
  28. data/lib/podio/models/organization.rb +4 -0
  29. data/lib/podio/models/organization_member.rb +17 -4
  30. data/lib/podio/models/organization_profile.rb +5 -1
  31. data/lib/podio/models/profile.rb +19 -10
  32. data/lib/podio/models/reference.rb +33 -0
  33. data/lib/podio/models/search.rb +4 -7
  34. data/lib/podio/models/space.rb +21 -12
  35. data/lib/podio/models/space_invitation.rb +7 -7
  36. data/lib/podio/models/space_member.rb +28 -3
  37. data/lib/podio/models/task.rb +38 -14
  38. data/lib/podio/models/user.rb +27 -5
  39. data/lib/podio/models/user_status.rb +5 -0
  40. data/lib/podio/models/view.rb +51 -0
  41. data/lib/podio/models/widget.rb +1 -1
  42. data/lib/podio/version.rb +1 -1
  43. data/test/client_test.rb +13 -3
  44. data/test/fixtures/fixtures.yaml +7 -7
  45. data/test/test_helper.rb +1 -24
  46. metadata +16 -23
  47. data/lib/podio/middleware/response_recorder.rb +0 -14
  48. data/lib/podio/models/meeting.rb +0 -151
  49. data/lib/podio/models/meeting_participiant.rb +0 -11
  50. data/test/fixtures/client/18a224aaf83ac57a7b8159cecdbb1263.rack +0 -1
  51. data/test/fixtures/client/a87c69a0624af0413a670094c6615651.rack +0 -1
  52. data/test/fixtures/client/ac493997db62308972c208afa76f8479.rack +0 -1
  53. data/test/fixtures/client/d7fbf422c77af768552423633d0389e8.rack +0 -1
  54. data/test/fixtures/client/e2d68afe39f5531195273ea259b63916.rack +0 -1
@@ -0,0 +1,6 @@
1
+ class Podio::LinkedAccountData < ActivePodio::Base
2
+ property :id, :integer
3
+ property :type, :string
4
+ property :info, :string
5
+ property :url, :string
6
+ end
@@ -3,6 +3,7 @@ class Podio::News < ActivePodio::Base
3
3
  property :title, :string
4
4
  property :content, :string
5
5
  property :link, :string
6
+ property :more, :boolean
6
7
  property :priority, :integer
7
8
  property :target_group, :string
8
9
  property :locale, :string
@@ -110,5 +110,9 @@ class Podio::Organization < ActivePodio::Base
110
110
  Podio.connection.post("/org/#{id}/upgrade").body
111
111
  end
112
112
 
113
+ def find_all_with_private_shares
114
+ list Podio.connection.get("/app_store/org/").body
115
+ end
116
+
113
117
  end
114
118
  end
@@ -3,13 +3,14 @@ class Podio::OrganizationMember < ActivePodio::Base
3
3
  property :profile, :hash
4
4
  property :admin, :boolean
5
5
  property :employee, :boolean
6
+ property :space_memberships, :integer
6
7
 
7
8
  has_one :user, :class => 'User'
8
9
  has_one :contact, :class => 'Contact', :property => :profile
9
10
 
10
11
  delegate :user_id, :mail, :to => :user
11
12
  delegate :name, :avatar, :link, :title, :organization, :title_and_org, :default_title, :avatar_url, :last_seen_on, :to => :contact
12
-
13
+
13
14
  class << self
14
15
  def find_all_for_org(org_id, options = {})
15
16
  list Podio.connection.get { |req|
@@ -17,14 +18,26 @@ class Podio::OrganizationMember < ActivePodio::Base
17
18
  }.body
18
19
  end
19
20
 
21
+ def search(org_id, query, options = {})
22
+ options[:query] = query
23
+ list Podio.connection.get { |req|
24
+ req.url("/org/#{org_id}/member/search/", options)
25
+ }.body
26
+ end
27
+
20
28
  def find(org_id, user_id)
21
29
  member Podio.connection.get("/org/#{org_id}/member/#{user_id}").body
22
30
  end
23
-
31
+
32
+
24
33
  def delete(org_id, user_id)
25
34
  Podio.connection.delete("/org/#{org_id}/member/#{user_id}").status
26
35
  end
27
-
36
+
37
+ def delete_info(org_id, user_id)
38
+ Podio.connection.get("/org/#{org_id}/member/#{user_id}/end_member_info").body
39
+ end
40
+
28
41
  def make_admin(org_id, user_id)
29
42
  response = Podio.connection.post do |req|
30
43
  req.url "/org/#{org_id}/admin/"
@@ -36,6 +49,6 @@ class Podio::OrganizationMember < ActivePodio::Base
36
49
  def remove_admin(org_id, user_id)
37
50
  Podio.connection.delete("/org/#{org_id}/admin/#{user_id}").status
38
51
  end
39
-
52
+
40
53
  end
41
54
  end
@@ -30,13 +30,17 @@ class Podio::OrganizationProfile < ActivePodio::Base
30
30
  self.class.delete(self.org_id)
31
31
  end
32
32
 
33
- handle_api_errors_for :create, :update # Call must be made after the methods to handle have been defined
33
+ handle_api_errors_for :create, :update # Call must be made after the methods to handle have been defined
34
34
 
35
35
  class << self
36
36
  def find(org_id)
37
37
  member Podio.connection.get("/org/#{org_id}/appstore").body
38
38
  end
39
39
 
40
+ def find_by_url(url_label)
41
+ member Podio.connection.get("/app_store/org/#{url_label}/profile").body
42
+ end
43
+
40
44
  def create(org_id, attributes)
41
45
  response = Podio.connection.post do |req|
42
46
  req.url "/org/#{org_id}/appstore"
@@ -23,7 +23,7 @@ class Podio::Profile < ActivePodio::Base
23
23
  property :skill, :array
24
24
  property :linkedin, :string
25
25
  property :twitter, :string
26
-
26
+
27
27
  property :app_store_about, :string
28
28
  property :app_store_organization, :string
29
29
  property :app_store_location, :string
@@ -32,7 +32,7 @@ class Podio::Profile < ActivePodio::Base
32
32
 
33
33
  property :last_seen_on, :datetime
34
34
  property :is_employee, :boolean
35
-
35
+
36
36
  alias_method :employee?, :is_employee
37
37
 
38
38
  class << self
@@ -68,8 +68,11 @@ class Podio::Profile < ActivePodio::Base
68
68
  }.body
69
69
  end
70
70
 
71
- def find(profile_id)
72
- result = Podio.connection.get("/contact/#{profile_id}/v2").body
71
+ def find(profile_id, options = {})
72
+ result = Podio.connection.get do |req|
73
+ req.url("/contact/#{profile_id}/v2", options)
74
+ end.body
75
+
73
76
  if result.is_a?(Array)
74
77
  return list result
75
78
  else
@@ -100,7 +103,7 @@ class Podio::Profile < ActivePodio::Base
100
103
 
101
104
  list Podio.connection.get { |req|
102
105
  req.url("/contact/connection/#{connection_id}", options)
103
- }.body
106
+ }.body
104
107
  end
105
108
 
106
109
  def find_all_for_connection_type(connection_type, options={})
@@ -110,7 +113,13 @@ class Podio::Profile < ActivePodio::Base
110
113
  req.url("/contact/connection/#{connection_type}", options)
111
114
  }.body
112
115
  end
113
-
116
+
117
+ def find_all_for_linked_account(id, options={})
118
+ list Podio.connection.get { |req|
119
+ req.url("/contact/linked_account/#{id}", options)
120
+ }.body
121
+ end
122
+
114
123
  def find_for_org(org_id)
115
124
  member Podio.connection.get("/org/#{org_id}/billing").body
116
125
  end
@@ -138,12 +147,12 @@ class Podio::Profile < ActivePodio::Base
138
147
  def skills(options)
139
148
  Podio.connection.get { |req|
140
149
  req.url("/contact/skill/", options)
141
- }.body
150
+ }.body
142
151
  end
143
152
 
144
153
  def totals_by_space(space_id, options = {})
145
154
  options[:exclude_self] = (options[:exclude_self] == false ? "0" : "1" )
146
-
155
+
147
156
  Podio.connection.get { |req|
148
157
  req.url("/contact/space/#{space_id}/totals/", options)
149
158
  }.body
@@ -157,7 +166,7 @@ class Podio::Profile < ActivePodio::Base
157
166
 
158
167
  response.body
159
168
  end
160
-
169
+
161
170
  def delete_contact(profile_id)
162
171
  Podio.connection.delete("/contact/#{profile_id}").body
163
172
  end
@@ -170,6 +179,6 @@ class Podio::Profile < ActivePodio::Base
170
179
 
171
180
  response.body
172
181
  end
173
-
182
+
174
183
  end
175
184
  end
@@ -0,0 +1,33 @@
1
+ class Podio::Reference < ActivePodio::Base
2
+
3
+ property :type, :string
4
+ property :id, :integer
5
+ property :title, :string
6
+ property :link, :string
7
+ property :data, :hash
8
+ property :created_on, :datetime
9
+
10
+ has_one :created_by, :class => 'ByLine'
11
+ has_one :created_via, :class => 'Via'
12
+
13
+ class << self
14
+ def find(ref_type, ref_id, options = {})
15
+ member Podio.connection.get { |req|
16
+ req.url("/reference/#{ref_type}/#{ref_id}", options)
17
+ }.body
18
+ end
19
+
20
+ def search(target, query, limit)
21
+ response = Podio.connection.post do |req|
22
+ req.url "/reference/search"
23
+ req.body = {
24
+ :target => target,
25
+ :text => query,
26
+ :limit => limit
27
+ }
28
+ end
29
+ response.body
30
+ end
31
+
32
+ end
33
+ end
@@ -4,17 +4,14 @@ class Podio::Search < ActivePodio::Base
4
4
  property :title, :string
5
5
  property :created_on, :datetime
6
6
  property :link, :string
7
- property :space, :hash
8
- property :org, :hash
9
- property :app, :hash
10
7
  property :search_id, :integer
11
8
  property :rank, :integer
12
-
9
+
13
10
  has_one :created_by, :class => 'ByLine'
14
11
  has_one :app, :class => 'Application'
15
12
  has_one :org, :class => 'Organization'
16
13
  has_one :space, :class => 'Space'
17
-
14
+
18
15
  class << self
19
16
  def in_org(org_id, words)
20
17
  response = Podio.connection.post do |req|
@@ -59,5 +56,5 @@ class Podio::Search < ActivePodio::Base
59
56
  Podio.connection.post("/search/#{search_id}/#{rank}/clicked").status
60
57
  end
61
58
  end
62
-
63
- end
59
+
60
+ end
@@ -1,6 +1,6 @@
1
1
  class Podio::Space < ActivePodio::Base
2
2
  include ActivePodio::Updatable
3
-
3
+
4
4
  property :space_id, :integer
5
5
  property :name, :string
6
6
  property :url, :string
@@ -17,21 +17,27 @@ class Podio::Space < ActivePodio::Base
17
17
  property :auto_join, :boolean
18
18
  property :type, :string
19
19
  property :premium, :boolean
20
-
20
+ property :last_activity_on, :datetime
21
+ property :created_on, :datetime
22
+
21
23
  has_one :created_by, :class => 'ByLine'
22
24
 
23
25
  alias_method :id, :space_id
24
-
26
+
25
27
  def create
26
28
  response = Space.create(:org_id => org_id, :name => name, :privacy => self.privacy, :auto_join => self.auto_join)
27
29
  self.url = response['url']
28
30
  self.space_id = response['space_id']
29
31
  end
30
-
32
+
31
33
  def update
32
34
  self.class.update(self.space_id, :name => self.name, :post_on_new_app => self.post_on_new_app, :post_on_new_member => self.post_on_new_member, :url_label => self.url_label, :privacy => self.privacy, :auto_join => self.auto_join)
33
35
  end
34
-
36
+
37
+ def delete
38
+ self.class.delete(self.id)
39
+ end
40
+
35
41
  class << self
36
42
  def create(attributes)
37
43
  response = Podio.connection.post do |req|
@@ -53,31 +59,34 @@ class Podio::Space < ActivePodio::Base
53
59
  def find(id)
54
60
  member Podio.connection.get("/space/#{id}").body
55
61
  end
56
-
62
+
57
63
  def join(space_id)
58
64
  Podio.connection.post("/space/#{space_id}/join").body
59
65
  end
60
66
 
61
- def find_by_url(url, info = false)
62
- info = info ? 1 : 0
63
- member Podio.connection.get("/space/url?url=#{ERB::Util.url_encode(url)}&info=#{info}").body
67
+ def find_by_url(url)
68
+ member Podio.connection.get("/space/url?url=#{ERB::Util.url_encode(url)}").body
64
69
  end
65
-
70
+
66
71
  def find_all_for_org(org_id)
67
72
  list Podio.connection.get("/org/#{org_id}/space/").body
68
73
  end
69
74
 
75
+ def find_all_spaces_for_org(org_id, options={})
76
+ list Podio.connection.get("/org/#{org_id}/all_spaces/", options).body
77
+ end
78
+
70
79
  def find_open_for_org(org_id)
71
80
  list Podio.connection.get("/space/org/#{org_id}/available/").body
72
81
  end
73
-
82
+
74
83
  def validate_url_label(org_id, url_label)
75
84
  Podio.connection.post { |req|
76
85
  req.url "/space/org/#{org_id}/url/validate"
77
86
  req.body = {:url_label => url_label}
78
87
  }.body
79
88
  end
80
-
89
+
81
90
  end
82
91
  end
83
92
 
@@ -13,6 +13,7 @@ class Podio::SpaceInvitation < ActivePodio::Base
13
13
  property :context_ref_type, :string # Write
14
14
  property :context_ref_id, :integer # Write
15
15
  property :context, :hash # Read
16
+ property :external_contacts, :hash
16
17
 
17
18
  has_one :user, :class => 'User'
18
19
 
@@ -67,17 +68,16 @@ class Podio::SpaceInvitation < ActivePodio::Base
67
68
  response.body
68
69
  end
69
70
 
70
- def decline_member(invite_code)
71
- Podio.connection.delete("/space/membership?invite_code=#{invite_code}").status
71
+ def find_member(invite_code)
72
+ member Podio.connection.get("/space/membership?invite_code=#{invite_code}").body
72
73
  end
73
74
 
74
- def find(invite_code)
75
- member Podio.connection.get("/space/invite/status?invite_code=#{ERB::Util.url_encode(invite_code)}").body
75
+ def decline_member(invite_code)
76
+ Podio.connection.delete("/space/membership?invite_code=#{invite_code}").status
76
77
  end
77
78
 
78
- def find_member(invite_code)
79
- member Podio.connection.get("/space/membership?invite_code=#{ERB::Util.url_encode(invite_code)}").body
79
+ def claim_member(invite_code)
80
+ Podio.connection.post("/space/membership/claim?invite_code=#{invite_code}").status
80
81
  end
81
-
82
82
  end
83
83
  end
@@ -6,11 +6,13 @@ class Podio::SpaceMember < ActivePodio::Base
6
6
  property :ended_on, :datetime
7
7
 
8
8
  has_one :user, :class => 'User'
9
+ has_one :contact, :class => 'Contact', :property => :profile
10
+ has_one :space, :class => 'Space'
9
11
 
10
- delegate :user_id, :name, :to => :user
12
+ delegate :user_id, :name, :to => :contact
11
13
 
12
14
  alias_method :id, :user_id
13
-
15
+
14
16
  class << self
15
17
  def find_all_for_role(space_id, role)
16
18
  list Podio.connection.get { |req|
@@ -18,12 +20,23 @@ class Podio::SpaceMember < ActivePodio::Base
18
20
  }.body
19
21
  end
20
22
 
23
+ def find_membership(space_id, user_id)
24
+ response = Podio.connection.get { |req|
25
+ req.url("/space/#{space_id}/member/#{user_id}")
26
+ }
27
+ response.body
28
+ end
29
+
21
30
  def find_all_ended(space_id)
22
31
  list Podio.connection.get { |req|
23
32
  req.url("/space/#{space_id}/member/ended/")
24
33
  }.body
25
34
  end
26
35
 
36
+ def find_all(space_id, options = {})
37
+ list Podio.connection.get("/space/#{space_id}/member/", options).body
38
+ end
39
+
27
40
  def update_role(space_id, user_id, role)
28
41
  response = Podio.connection.put do |req|
29
42
  req.url "/space/#{space_id}/member/#{user_id}"
@@ -35,7 +48,7 @@ class Podio::SpaceMember < ActivePodio::Base
35
48
  def end_membership(space_id, user_id)
36
49
  Podio.connection.delete("/space/#{space_id}/member/#{user_id}").status
37
50
  end
38
-
51
+
39
52
  def find_top_contacts(space_id)
40
53
  result = Podio.connection.get("/space/#{space_id}/member/top/").body
41
54
  %w(employee external).each do |section|
@@ -43,5 +56,17 @@ class Podio::SpaceMember < ActivePodio::Base
43
56
  end
44
57
  result
45
58
  end
59
+
60
+ def find_memberships_for_user_in_org(org_id, user_id)
61
+ list Podio.connection.get("/org/#{org_id}/member/#{user_id}/space_member/").body
62
+ end
63
+
64
+ def request_membership(space_id)
65
+ Podio.connection.post("/space/#{space_id}/member_request/").status
66
+ end
67
+
68
+ def accept_membership_request(space_id, space_member_request_id)
69
+ Podio.connection.post("/space/#{space_id}/member_request/#{space_member_request_id}/accept").status
70
+ end
46
71
  end
47
72
  end
@@ -8,6 +8,7 @@ class Podio::Task < ActivePodio::Base
8
8
  property :description, :string
9
9
  property :private, :boolean
10
10
  property :due_date, :date
11
+ property :due_time, :time
11
12
  property :due_on, :datetime, :convert_incoming_local_datetime_to_utc => true
12
13
  property :responsible, :hash
13
14
  property :space_id, :integer
@@ -34,23 +35,29 @@ class Podio::Task < ActivePodio::Base
34
35
  has_one :deleted_via, :class => 'Via'
35
36
  has_one :completed_via, :class => 'Via'
36
37
  has_one :assignee, :class => 'User', :property => :responsible
37
- has_many :label_list, :class => 'TaskLabel', :property => :labels
38
+ has_many :label_list, :class => 'TaskLabel', :property => :labels
38
39
  has_many :files, :class => 'FileAttachment'
39
40
  has_many :comments, :class => 'Comment'
40
41
  has_one :reminder, :class => 'Reminder'
41
42
  has_one :recurrence, :class => 'Recurrence'
42
43
 
43
44
  alias_method :id, :task_id
44
-
45
+
45
46
  def create
47
+ result = self.create_multiple # Could return false if API call failed
48
+ self.task_id = result.first.id if result
49
+ result
50
+ end
51
+
52
+ def create_multiple
46
53
  compacted_attributes = remove_nil_values(self.attributes)
47
54
  if(self.ref_type.present? && self.ref_id.present?)
48
- self.task_id = self.class.create_with_ref(self.ref_type, self.ref_id, compacted_attributes)
55
+ self.class.create_with_ref(self.ref_type, self.ref_id, compacted_attributes)
49
56
  else
50
- self.task_id = self.class.create(compacted_attributes)
57
+ self.class.create(compacted_attributes)
51
58
  end
52
59
  end
53
-
60
+
54
61
  def destroy
55
62
  self.class.delete(self.id)
56
63
  end
@@ -59,6 +66,10 @@ class Podio::Task < ActivePodio::Base
59
66
  self.class.update_reference(self.id, ref_type, ref_id)
60
67
  end
61
68
 
69
+ def delete_reference
70
+ self.class.delete_reference(self.id)
71
+ end
72
+
62
73
  def update_labels(label_ids)
63
74
  self.class.update_labels(self.id, label_ids)
64
75
  end
@@ -75,7 +86,7 @@ class Podio::Task < ActivePodio::Base
75
86
  self.class.rank(self.id, previous_task && previous_task.to_i, next_task && next_task.to_i)
76
87
  end
77
88
 
78
- handle_api_errors_for :create, :destroy, :complete, :uncomplete, :update_reference # Call must be made after the methods to handle have been defined
89
+ handle_api_errors_for :create_multiple, :destroy, :complete, :uncomplete, :update_reference # Call must be made after the methods to handle have been defined
79
90
 
80
91
  class << self
81
92
  def create(attributes)
@@ -84,7 +95,7 @@ class Podio::Task < ActivePodio::Base
84
95
  req.body = attributes
85
96
  end
86
97
 
87
- response.body['task_id']
98
+ list [response.body].flatten
88
99
  end
89
100
 
90
101
  def create_with_ref(ref_type, ref_id, attributes)
@@ -93,7 +104,7 @@ class Podio::Task < ActivePodio::Base
93
104
  req.body = attributes
94
105
  end
95
106
 
96
- response.body['task_id']
107
+ list [response.body].flatten
97
108
  end
98
109
 
99
110
  def update_description(id, description)
@@ -112,8 +123,8 @@ class Podio::Task < ActivePodio::Base
112
123
  Podio.connection.put("/task/#{id}/due_date", {:due_date => due_date}).status
113
124
  end
114
125
 
115
- def update_due_on(id, due_on)
116
- Podio.connection.put("/task/#{id}/due_on", {:due_on => due_on}).status
126
+ def update_due_on(id, options)
127
+ Podio.connection.put("/task/#{id}/due_on", options).status
117
128
  end
118
129
 
119
130
  def update_assignee(id, user_id)
@@ -123,7 +134,11 @@ class Podio::Task < ActivePodio::Base
123
134
  def update_reference(id, ref_type, ref_id)
124
135
  Podio.connection.put("/task/#{id}/ref", {:ref_type => ref_type, :ref_id => ref_id}).status
125
136
  end
126
-
137
+
138
+ def delete_reference(task_id)
139
+ Podio.connection.delete("/task/#{task_id}/ref").status
140
+ end
141
+
127
142
  def update_labels(id, label_ids)
128
143
  Podio.connection.put("/task/#{id}/label/", label_ids).status
129
144
  end
@@ -157,7 +172,7 @@ class Podio::Task < ActivePodio::Base
157
172
  req.url('/task/', options)
158
173
  }.body
159
174
  end
160
-
175
+
161
176
  def find_summary
162
177
  response = Podio.connection.get("/task/summary").body
163
178
  response['overdue']['tasks'] = list(response['overdue']['tasks'])
@@ -166,6 +181,15 @@ class Podio::Task < ActivePodio::Base
166
181
  response
167
182
  end
168
183
 
184
+ def find_summary_for_org(org_id, limit=nil)
185
+ response = Podio.connection.get("/task/org/#{org_id}/summary" +
186
+ ((limit != nil) ? "?limit=#{limit}" : "")).body
187
+ response['overdue']['tasks'] = list(response['overdue']['tasks'])
188
+ response['today']['tasks'] = list(response['today']['tasks'])
189
+ response['other']['tasks'] = list(response['other']['tasks'])
190
+ response
191
+ end
192
+
169
193
  def find_summary_for_reference(ref_type, ref_id)
170
194
  response = Podio.connection.get("/task/#{ref_type}/#{ref_id}/summary").body
171
195
  response['overdue']['tasks'] = list(response['overdue']['tasks'])
@@ -173,7 +197,7 @@ class Podio::Task < ActivePodio::Base
173
197
  response['other']['tasks'] = list(response['other']['tasks'])
174
198
  response
175
199
  end
176
-
200
+
177
201
  def find_personal_summary
178
202
  response = Podio.connection.get("/task/personal/summary").body
179
203
  response['overdue']['tasks'] = list(response['overdue']['tasks'])
@@ -181,6 +205,6 @@ class Podio::Task < ActivePodio::Base
181
205
  response['other']['tasks'] = list(response['other']['tasks'])
182
206
  response
183
207
  end
184
-
208
+
185
209
  end
186
210
  end