podio 0.4.1 → 0.5.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.
- data/README.md +36 -5
- data/Rakefile +3 -1
- data/lib/podio/active_podio/base.rb +311 -0
- data/lib/podio/active_podio/updatable.rb +22 -0
- data/lib/podio/client.rb +7 -4
- data/lib/podio/error.rb +1 -0
- data/lib/podio/middleware/error_response.rb +5 -1
- data/lib/podio/middleware/response_recorder.rb +1 -1
- data/lib/podio/models/app_store_share.rb +67 -0
- data/lib/podio/{areas → models}/application.rb +23 -7
- data/lib/podio/models/application_email.rb +22 -0
- data/lib/podio/models/application_field.rb +17 -0
- data/lib/podio/{areas → models}/bulletin.rb +16 -5
- data/lib/podio/models/by_line.rb +11 -0
- data/lib/podio/models/category.rb +49 -0
- data/lib/podio/models/comment.rb +63 -0
- data/lib/podio/{areas → models}/connection.rb +20 -4
- data/lib/podio/models/contact.rb +10 -0
- data/lib/podio/models/conversation.rb +72 -0
- data/lib/podio/models/conversation_message.rb +12 -0
- data/lib/podio/models/conversation_participant.rb +9 -0
- data/lib/podio/models/email_subscription_setting.rb +39 -0
- data/lib/podio/models/embed.rb +34 -0
- data/lib/podio/models/file_attachment.rb +127 -0
- data/lib/podio/models/form.rb +25 -0
- data/lib/podio/{areas → models}/hook.rb +15 -5
- data/lib/podio/{areas → models}/importer.rb +4 -6
- data/lib/podio/{areas → models}/integration.rb +40 -4
- data/lib/podio/models/item.rb +122 -0
- data/lib/podio/models/item_diff.rb +16 -0
- data/lib/podio/models/item_field.rb +19 -0
- data/lib/podio/models/item_revision.rb +18 -0
- data/lib/podio/models/news.rb +83 -0
- data/lib/podio/models/notification.rb +47 -0
- data/lib/podio/models/notification_group.rb +19 -0
- data/lib/podio/models/o_auth.rb +32 -0
- data/lib/podio/models/o_auth_client.rb +93 -0
- data/lib/podio/{areas → models}/organization.rb +39 -6
- data/lib/podio/models/organization_contact.rb +14 -0
- data/lib/podio/{areas → models}/organization_member.rb +13 -5
- data/lib/podio/models/organization_profile.rb +61 -0
- data/lib/podio/{areas/contact.rb → models/profile.rb} +23 -6
- data/lib/podio/{areas → models}/rating.rb +5 -7
- data/lib/podio/{areas → models}/search.rb +6 -7
- data/lib/podio/models/space.rb +45 -0
- data/lib/podio/models/space_contact.rb +23 -0
- data/lib/podio/models/space_invite.rb +57 -0
- data/lib/podio/models/space_member.rb +32 -0
- data/lib/podio/models/status.rb +35 -0
- data/lib/podio/{areas → models}/subscription.rb +8 -7
- data/lib/podio/{areas → models}/tag.rb +14 -7
- data/lib/podio/models/task.rb +153 -0
- data/lib/podio/models/task_label.rb +50 -0
- data/lib/podio/models/user.rb +66 -0
- data/lib/podio/models/user_status.rb +18 -0
- data/lib/podio/models/via.rb +7 -0
- data/lib/podio/{areas → models}/widget.rb +9 -5
- data/lib/podio/version.rb +1 -1
- data/lib/podio.rb +97 -39
- data/podio.gemspec +4 -3
- data/test/active_podio_test.rb +256 -0
- data/test/client_test.rb +20 -15
- data/test/fixtures/client/18a224aaf83ac57a7b8159cecdbb1263.rack +1 -0
- data/test/fixtures/client/a87c69a0624af0413a670094c6615651.rack +1 -0
- data/test/fixtures/client/ac493997db62308972c208afa76f8479.rack +1 -0
- data/test/fixtures/client/d7fbf422c77af768552423633d0389e8.rack +1 -0
- data/test/fixtures/client/e2d68afe39f5531195273ea259b63916.rack +1 -0
- data/test/fixtures/fixtures.yaml +34 -0
- data/test/models_sanity_test.rb +19 -0
- data/test/test_helper.rb +22 -28
- metadata +89 -64
- data/lib/podio/areas/app_store.rb +0 -69
- data/lib/podio/areas/comment.rb +0 -36
- data/lib/podio/areas/conversation.rb +0 -39
- data/lib/podio/areas/email.rb +0 -24
- data/lib/podio/areas/file.rb +0 -81
- data/lib/podio/areas/form.rb +0 -11
- data/lib/podio/areas/item.rb +0 -68
- data/lib/podio/areas/notification.rb +0 -39
- data/lib/podio/areas/oauth.rb +0 -107
- data/lib/podio/areas/organization_profile.rb +0 -32
- data/lib/podio/areas/space.rb +0 -77
- data/lib/podio/areas/status.rb +0 -19
- data/lib/podio/areas/task.rb +0 -108
- data/lib/podio/areas/user.rb +0 -31
- data/lib/podio/areas/user_status.rb +0 -11
data/lib/podio/areas/oauth.rb
DELETED
@@ -1,107 +0,0 @@
|
|
1
|
-
module Podio
|
2
|
-
module OAuth
|
3
|
-
include Podio::ResponseWrapper
|
4
|
-
extend self
|
5
|
-
|
6
|
-
def authorize(attributes)
|
7
|
-
response = Podio.connection.post do |req|
|
8
|
-
req.url "/oauth/authorize"
|
9
|
-
req.body = attributes
|
10
|
-
end
|
11
|
-
|
12
|
-
response.body
|
13
|
-
end
|
14
|
-
|
15
|
-
def get_info(attributes)
|
16
|
-
response = Podio.connection.post do |req|
|
17
|
-
req.url "/oauth/info"
|
18
|
-
req.body = attributes
|
19
|
-
end
|
20
|
-
|
21
|
-
response.body
|
22
|
-
end
|
23
|
-
|
24
|
-
def get_access_token(attributes)
|
25
|
-
response = Podio.connection.post do |req|
|
26
|
-
req.url "/oauth/token"
|
27
|
-
req.body = attributes
|
28
|
-
end
|
29
|
-
|
30
|
-
response.body
|
31
|
-
end
|
32
|
-
|
33
|
-
module OAuthClient
|
34
|
-
include Podio::ResponseWrapper
|
35
|
-
extend self
|
36
|
-
|
37
|
-
def create(attributes)
|
38
|
-
response = Podio.connection.post do |req|
|
39
|
-
req.url "/oauth/client/"
|
40
|
-
req.body = attributes
|
41
|
-
end
|
42
|
-
|
43
|
-
response.body['auth_client_id']
|
44
|
-
end
|
45
|
-
|
46
|
-
def create_admin(user_id, attributes)
|
47
|
-
response = Podio.connection.post do |req|
|
48
|
-
req.url "/oauth/client/user/#{user_id}/"
|
49
|
-
req.body = attributes
|
50
|
-
end
|
51
|
-
|
52
|
-
response.status
|
53
|
-
end
|
54
|
-
|
55
|
-
def update(id, attributes)
|
56
|
-
response = Podio.connection.put do |req|
|
57
|
-
req.url "/oauth/client/#{id}"
|
58
|
-
req.body = attributes
|
59
|
-
end
|
60
|
-
|
61
|
-
response.status
|
62
|
-
end
|
63
|
-
|
64
|
-
def update_admin(id, attributes)
|
65
|
-
response = Podio.connection.put do |req|
|
66
|
-
req.url "/oauth/client/#{id}/admin"
|
67
|
-
req.body = attributes
|
68
|
-
end
|
69
|
-
|
70
|
-
response.status
|
71
|
-
end
|
72
|
-
|
73
|
-
def delete(id)``
|
74
|
-
response = Podio.connection.delete("/oauth/client/#{id}")
|
75
|
-
|
76
|
-
response.status
|
77
|
-
end
|
78
|
-
|
79
|
-
def delete_grant(id)
|
80
|
-
response = Podio.connection.delete("/oauth/grant/client/#{id}")
|
81
|
-
|
82
|
-
response.status
|
83
|
-
end
|
84
|
-
|
85
|
-
def reset(id)
|
86
|
-
response = Podio.connection.post("/oauth/client/#{id}/reset")
|
87
|
-
response.status
|
88
|
-
end
|
89
|
-
|
90
|
-
def find_granted_clients()
|
91
|
-
list Podio.connection.get("oauth/grant/client/").body
|
92
|
-
end
|
93
|
-
|
94
|
-
def find_all_for_current_user()
|
95
|
-
list Podio.connection.get("oauth/client/").body
|
96
|
-
end
|
97
|
-
|
98
|
-
def find_all_for_user(user_id)
|
99
|
-
list Podio.connection.get("oauth/client/user/#{user_id}/").body
|
100
|
-
end
|
101
|
-
|
102
|
-
def find(client_id)
|
103
|
-
member Podio.connection.get("oauth/client/#{client_id}").body
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
module Podio
|
2
|
-
module OrganizationProfile
|
3
|
-
include Podio::ResponseWrapper
|
4
|
-
extend self
|
5
|
-
|
6
|
-
def find(org_id)
|
7
|
-
member Podio.connection.get("/org/#{org_id}/appstore").body
|
8
|
-
end
|
9
|
-
|
10
|
-
def create(org_id, attributes)
|
11
|
-
response = Podio.connection.post do |req|
|
12
|
-
req.url "/org/#{org_id}/appstore"
|
13
|
-
req.body = attributes
|
14
|
-
end
|
15
|
-
|
16
|
-
response.body
|
17
|
-
end
|
18
|
-
|
19
|
-
def update(org_id, attributes)
|
20
|
-
response = Podio.connection.put do |req|
|
21
|
-
req.url "/org/#{org_id}/appstore"
|
22
|
-
req.body = attributes
|
23
|
-
end
|
24
|
-
response.status
|
25
|
-
end
|
26
|
-
|
27
|
-
def delete(org_id)
|
28
|
-
Podio.connection.delete("/org/#{org_id}/appstore").status
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|
data/lib/podio/areas/space.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
require "erb"
|
2
|
-
|
3
|
-
module Podio
|
4
|
-
module Space
|
5
|
-
include Podio::ResponseWrapper
|
6
|
-
extend self
|
7
|
-
|
8
|
-
def create(attributes)
|
9
|
-
response = Podio.connection.post do |req|
|
10
|
-
req.url '/space/'
|
11
|
-
req.body = attributes
|
12
|
-
end
|
13
|
-
|
14
|
-
response.body
|
15
|
-
end
|
16
|
-
|
17
|
-
def find(id)
|
18
|
-
member Podio.connection.get("/space/#{id}").body
|
19
|
-
end
|
20
|
-
|
21
|
-
def find_by_url(url)
|
22
|
-
member Podio.connection.get("/space/url?url=#{ERB::Util.url_encode(url)}").body
|
23
|
-
end
|
24
|
-
|
25
|
-
def find_all_for_org(org_id)
|
26
|
-
list Podio.connection.get("/org/#{org_id}/space/").body
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
|
31
|
-
module SpaceInvite
|
32
|
-
include Podio::ResponseWrapper
|
33
|
-
extend self
|
34
|
-
|
35
|
-
def create(space_id, role, attributes={})
|
36
|
-
response = Podio.connection.post do |req|
|
37
|
-
req.url "/space/#{space_id}/invite"
|
38
|
-
req.body = attributes.merge(:role => role)
|
39
|
-
end
|
40
|
-
|
41
|
-
response.body
|
42
|
-
end
|
43
|
-
|
44
|
-
def accept(invite_code)
|
45
|
-
response = Podio.connection.post do |req|
|
46
|
-
req.url '/space/invite/accept'
|
47
|
-
req.body = {:invite_code => invite_code}
|
48
|
-
end
|
49
|
-
|
50
|
-
response.body
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
module SpaceMember
|
55
|
-
include Podio::ResponseWrapper
|
56
|
-
extend self
|
57
|
-
|
58
|
-
def find_all_for_role(space_id, role)
|
59
|
-
list Podio.connection.get { |req|
|
60
|
-
req.url("/space/#{space_id}/member/#{role}/")
|
61
|
-
}.body
|
62
|
-
end
|
63
|
-
|
64
|
-
def update_role(space_id, user_id, role)
|
65
|
-
response = Podio.connection.put do |req|
|
66
|
-
req.url "/space/#{space_id}/member/#{user_id}"
|
67
|
-
req.body = { :role => role.to_s }
|
68
|
-
end
|
69
|
-
response.status
|
70
|
-
end
|
71
|
-
|
72
|
-
def end_membership(space_id, user_id)
|
73
|
-
Podio.connection.delete("/space/#{space_id}/member/#{user_id}").status
|
74
|
-
end
|
75
|
-
|
76
|
-
end
|
77
|
-
end
|
data/lib/podio/areas/status.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
module Podio
|
2
|
-
module Status
|
3
|
-
include Podio::ResponseWrapper
|
4
|
-
extend self
|
5
|
-
|
6
|
-
def find(id)
|
7
|
-
member Podio.connection.get("/status/#{id}").body
|
8
|
-
end
|
9
|
-
|
10
|
-
def create(space_id, attributes)
|
11
|
-
response = Podio.connection.post do |req|
|
12
|
-
req.url "/status/space/#{space_id}/"
|
13
|
-
req.body = attributes
|
14
|
-
end
|
15
|
-
|
16
|
-
response.body['status_id']
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
data/lib/podio/areas/task.rb
DELETED
@@ -1,108 +0,0 @@
|
|
1
|
-
module Podio
|
2
|
-
module Task
|
3
|
-
include Podio::ResponseWrapper
|
4
|
-
extend self
|
5
|
-
|
6
|
-
def create(attributes)
|
7
|
-
response = Podio.connection.post do |req|
|
8
|
-
req.url "/task/"
|
9
|
-
req.body = attributes
|
10
|
-
end
|
11
|
-
|
12
|
-
response.body['task_id']
|
13
|
-
end
|
14
|
-
|
15
|
-
def create_with_ref(ref_type, ref_id, attributes)
|
16
|
-
response = Podio.connection.post do |req|
|
17
|
-
req.url "/task/#{ref_type}/#{ref_id}/"
|
18
|
-
req.body = attributes
|
19
|
-
end
|
20
|
-
|
21
|
-
response.body['task_id']
|
22
|
-
end
|
23
|
-
|
24
|
-
def update_description(id, description)
|
25
|
-
Podio.connection.put("/task/#{id}/description", {:description => description}).status
|
26
|
-
end
|
27
|
-
|
28
|
-
def update_text(id, text)
|
29
|
-
Podio.connection.put("/task/#{id}/text", {:text => text}).status
|
30
|
-
end
|
31
|
-
|
32
|
-
def update_private(id, private_flag)
|
33
|
-
Podio.connection.put("/task/#{id}/private", {:private => private_flag}).status
|
34
|
-
end
|
35
|
-
|
36
|
-
def update_due_date(id, due_date)
|
37
|
-
Podio.connection.put("/task/#{id}/due_date", {:due_date => due_date}).status
|
38
|
-
end
|
39
|
-
|
40
|
-
def update_assignee(id, user_id)
|
41
|
-
Podio.connection.post("/task/#{id}/assign", {:responsible => user_id}).status
|
42
|
-
end
|
43
|
-
|
44
|
-
def update_reference(id, ref_type, ref_id)
|
45
|
-
Podio.connection.put("/task/#{id}/ref", {:ref_type => ref_type, :ref_id => ref_id}).status
|
46
|
-
end
|
47
|
-
|
48
|
-
def update_labels(id, label_ids)
|
49
|
-
Podio.connection.put("/task/#{id}/label/", label_ids).status
|
50
|
-
end
|
51
|
-
|
52
|
-
def delete(id)
|
53
|
-
Podio.connection.delete("/task/#{id}").status
|
54
|
-
end
|
55
|
-
|
56
|
-
def complete(id)
|
57
|
-
Podio.connection.post("/task/#{id}/complete").body
|
58
|
-
end
|
59
|
-
|
60
|
-
def incomplete(id)
|
61
|
-
Podio.connection.post("/task/#{id}/incomplete").body
|
62
|
-
end
|
63
|
-
|
64
|
-
def rank(id, before_task_id, after_task_id)
|
65
|
-
Podio.connection.post("/task/#{id}/rank", {:before => before_task_id, :after => after_task_id}).body
|
66
|
-
end
|
67
|
-
|
68
|
-
def find(id)
|
69
|
-
member Podio.connection.get("/task/#{id}").body
|
70
|
-
end
|
71
|
-
|
72
|
-
def find_all(options={})
|
73
|
-
list Podio.connection.get { |req|
|
74
|
-
req.url('/task/', options)
|
75
|
-
}.body
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
module TaskLabel
|
80
|
-
include Podio::ResponseWrapper
|
81
|
-
extend self
|
82
|
-
|
83
|
-
def find_all_labels
|
84
|
-
list Podio.connection.get { |req|
|
85
|
-
req.url("/task/label/")
|
86
|
-
}.body
|
87
|
-
end
|
88
|
-
|
89
|
-
def create(attributes)
|
90
|
-
response = Podio.connection.post do |req|
|
91
|
-
req.url "/task/label/"
|
92
|
-
req.body = attributes
|
93
|
-
end
|
94
|
-
|
95
|
-
response.body['label_id']
|
96
|
-
end
|
97
|
-
|
98
|
-
def delete(label_id)
|
99
|
-
Podio.connection.delete("/task/label/#{label_id}").status
|
100
|
-
end
|
101
|
-
|
102
|
-
def update(label_id, attributes)
|
103
|
-
Podio.connection.put("/task/label/#{label_id}", attributes).status
|
104
|
-
end
|
105
|
-
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
data/lib/podio/areas/user.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
module Podio
|
2
|
-
module User
|
3
|
-
include Podio::ResponseWrapper
|
4
|
-
extend self
|
5
|
-
|
6
|
-
def current
|
7
|
-
member Podio.connection.get("/user/").body
|
8
|
-
end
|
9
|
-
|
10
|
-
def create(attributes)
|
11
|
-
response = Podio.connection.post do |req|
|
12
|
-
req.url '/user/'
|
13
|
-
req.body = attributes
|
14
|
-
end
|
15
|
-
|
16
|
-
response.body['user_id']
|
17
|
-
end
|
18
|
-
|
19
|
-
def find_all_admins_for_org(org_id)
|
20
|
-
list Podio.connection.get("/org/#{org_id}/admin/").body
|
21
|
-
end
|
22
|
-
|
23
|
-
def get_property(name, value)
|
24
|
-
Podio.connection.get("/user/property/#{name}").body['value']
|
25
|
-
end
|
26
|
-
|
27
|
-
def set_property(name, value)
|
28
|
-
Podio.connection.put("/user/property/#{name}", {:value => value}).status
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|