podio 0.8.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/Gemfile +9 -2
  4. data/README.md +1 -4
  5. data/examples/oauth_web_flow/Gemfile +4 -0
  6. data/examples/{sinatra.rb → oauth_web_flow/sinatra.rb} +7 -6
  7. data/lib/podio.rb +18 -3
  8. data/lib/podio/active_podio/base.rb +107 -62
  9. data/lib/podio/client.rb +30 -5
  10. data/lib/podio/error.rb +22 -10
  11. data/lib/podio/middleware/error_response.rb +23 -16
  12. data/lib/podio/middleware/json_response.rb +1 -1
  13. data/lib/podio/middleware/logger.rb +3 -0
  14. data/lib/podio/middleware/oauth2.rb +3 -0
  15. data/lib/podio/models/account_provider.rb +1 -0
  16. data/lib/podio/models/action.rb +19 -2
  17. data/lib/podio/models/activation_status.rb +8 -2
  18. data/lib/podio/models/app_store_category.rb +4 -1
  19. data/lib/podio/models/app_store_share.rb +29 -16
  20. data/lib/podio/models/application.rb +57 -2
  21. data/lib/podio/models/application_email.rb +5 -2
  22. data/lib/podio/models/application_field.rb +5 -2
  23. data/lib/podio/models/batch.rb +8 -0
  24. data/lib/podio/models/by_line.rb +2 -1
  25. data/lib/podio/models/calendar_event.rb +63 -3
  26. data/lib/podio/models/calendar_mute.rb +6 -1
  27. data/lib/podio/models/category.rb +1 -0
  28. data/lib/podio/models/comment.rb +29 -8
  29. data/lib/podio/models/condition.rb +8 -0
  30. data/lib/podio/models/condition_set.rb +40 -0
  31. data/lib/podio/models/contact.rb +13 -2
  32. data/lib/podio/models/contract.rb +85 -1
  33. data/lib/podio/models/contract_event.rb +17 -0
  34. data/lib/podio/models/contract_price.rb +3 -7
  35. data/lib/podio/models/contract_price_v2.rb +31 -0
  36. data/lib/podio/models/contract_user.rb +4 -0
  37. data/lib/podio/models/conversation.rb +114 -13
  38. data/lib/podio/models/conversation_event.rb +51 -0
  39. data/lib/podio/models/conversation_message.rb +2 -1
  40. data/lib/podio/models/conversation_participant.rb +3 -2
  41. data/lib/podio/models/date_election.rb +35 -0
  42. data/lib/podio/models/email_contact.rb +46 -0
  43. data/lib/podio/models/email_subscription_setting.rb +4 -23
  44. data/lib/podio/models/embed.rb +4 -4
  45. data/lib/podio/models/experiment.rb +71 -0
  46. data/lib/podio/models/external_file.rb +7 -2
  47. data/lib/podio/models/file_attachment.rb +23 -0
  48. data/lib/podio/models/form.rb +7 -0
  49. data/lib/podio/models/friend.rb +12 -0
  50. data/lib/podio/models/grant.rb +73 -0
  51. data/lib/podio/models/hook.rb +13 -6
  52. data/lib/podio/models/importer.rb +3 -0
  53. data/lib/podio/models/integration.rb +17 -6
  54. data/lib/podio/models/invoice.rb +30 -0
  55. data/lib/podio/models/item.rb +81 -14
  56. data/lib/podio/models/item_diff.rb +9 -5
  57. data/lib/podio/models/item_field.rb +11 -2
  58. data/lib/podio/models/item_revision.rb +5 -2
  59. data/lib/podio/models/linked_account.rb +1 -0
  60. data/lib/podio/models/live.rb +61 -0
  61. data/lib/podio/models/net_promoter_score.rb +28 -0
  62. data/lib/podio/models/notification.rb +9 -4
  63. data/lib/podio/models/notification_group.rb +5 -2
  64. data/lib/podio/models/o_auth.rb +4 -2
  65. data/lib/podio/models/o_auth_client.rb +1 -2
  66. data/lib/podio/models/organization.rb +22 -10
  67. data/lib/podio/models/organization_contact.rb +2 -1
  68. data/lib/podio/models/organization_member.rb +17 -3
  69. data/lib/podio/models/organization_profile.rb +8 -2
  70. data/lib/podio/models/pin.rb +27 -0
  71. data/lib/podio/models/profile.rb +19 -50
  72. data/lib/podio/models/promotion.rb +91 -0
  73. data/lib/podio/models/rating.rb +23 -5
  74. data/lib/podio/models/recurrence.rb +6 -3
  75. data/lib/podio/models/reference.rb +17 -1
  76. data/lib/podio/models/reminder.rb +8 -3
  77. data/lib/podio/models/search.rb +7 -1
  78. data/lib/podio/models/space.rb +41 -2
  79. data/lib/podio/models/space_contact.rb +1 -2
  80. data/lib/podio/models/space_invitation.rb +4 -5
  81. data/lib/podio/models/space_member.rb +37 -4
  82. data/lib/podio/models/status.rb +20 -8
  83. data/lib/podio/models/stream_activity_group.rb +40 -0
  84. data/lib/podio/models/stream_mute.rb +7 -8
  85. data/lib/podio/models/stream_object.rb +19 -11
  86. data/lib/podio/models/subscription.rb +7 -1
  87. data/lib/podio/models/tag.rb +6 -1
  88. data/lib/podio/models/tag_search.rb +2 -1
  89. data/lib/podio/models/task.rb +74 -18
  90. data/lib/podio/models/task_label.rb +10 -2
  91. data/lib/podio/models/user.rb +50 -6
  92. data/lib/podio/models/user_mail.rb +4 -0
  93. data/lib/podio/models/user_status.rb +7 -0
  94. data/lib/podio/models/view.rb +27 -7
  95. data/lib/podio/models/widget.rb +25 -3
  96. data/lib/podio/version.rb +1 -1
  97. data/podio.gemspec +13 -10
  98. data/script/config.example.rb +6 -0
  99. data/script/referenceGenerator.rb +87 -0
  100. data/test/active_podio_test.rb +44 -34
  101. data/test/client_test.rb +13 -2
  102. metadata +89 -36
  103. data/lib/podio/middleware/date_conversion.rb +0 -37
  104. data/lib/podio/models/bulletin.rb +0 -60
  105. data/lib/podio/models/connection.rb +0 -53
  106. data/lib/podio/models/news.rb +0 -85
@@ -1,53 +0,0 @@
1
- class Podio::Connection < ActivePodio::Base
2
- property :connection_id, :integer
3
- property :type, :string
4
- property :name, :string
5
- property :last_load_on, :datetime
6
- property :created_on, :datetime
7
-
8
- property :contact_count, :integer
9
-
10
- alias_method :id, :connection_id
11
-
12
- def reload
13
- Connection.reload(id)
14
- end
15
-
16
- def destroy
17
- Connection.delete(id)
18
- end
19
-
20
- class << self
21
- def create(attributes)
22
- response = Podio.connection.post do |req|
23
- req.url '/connection/'
24
- req.body = attributes
25
- end
26
-
27
- member response.body
28
- end
29
-
30
- def reload(id)
31
- Podio.connection.post("/connection/#{id}/load").body
32
- end
33
-
34
- def find(id)
35
- member Podio.connection.get("/connection/#{id}").body
36
- end
37
-
38
- def delete(id)
39
- Podio.connection.delete("/connection/#{id}").status
40
- end
41
-
42
- def all(options={})
43
- list Podio.connection.get('/connection/').body
44
- end
45
-
46
- def preview(id, options={})
47
- Podio.connection.get { |req|
48
- req.url("/connection/#{id}/preview", options)
49
- }.body
50
- end
51
-
52
- end
53
- end
@@ -1,85 +0,0 @@
1
- class Podio::News < ActivePodio::Base
2
- property :news_id, :integer
3
- property :title, :string
4
- property :content, :string
5
- property :link, :string
6
- property :more, :boolean
7
- property :priority, :integer
8
- property :target_group, :string
9
- property :locale, :string
10
- property :run_from, :datetime
11
- property :run_to, :datetime
12
- property :stream_display, :boolean
13
- property :email_display, :boolean
14
- property :email_views, :integer
15
- property :stream_views, :integer
16
- property :email_clicks, :integer
17
- property :stream_clicks, :integer
18
-
19
- alias_method :id, :news_id
20
-
21
- class << self
22
- def find_stream()
23
- result = Podio.connection.get("/news/stream").body
24
- result.blank? ? nil : member(result)
25
- end
26
-
27
- def get_news_redirect(news_id, type=nil)
28
- type = type.presence || 'stream'
29
- response = Podio.connection.get("/news/#{news_id}/redirect?type=#{type}")
30
- response.body['link']
31
- end
32
-
33
- def delete(news_id)
34
- Podio.connection.delete("/news/#{news_id}")
35
- end
36
-
37
- def unsubscribe_entry(news_id)
38
- Podio.connection.post do |req|
39
- req.url "/news/#{news_id}/unsubscribe"
40
- end
41
- end
42
-
43
- def create(attributes)
44
- response = Podio.connection.post do |req|
45
- req.url '/news/'
46
- req.body = attributes
47
- end
48
- response.body['news_id']
49
- end
50
-
51
- def update(id, attributes)
52
- response = Podio.connection.put do |req|
53
- req.url "/news/#{id}"
54
- req.body = attributes
55
- end
56
-
57
- response.status
58
- end
59
-
60
- def find(id, options={})
61
- member Podio.connection.get("/news/#{id}").body
62
- end
63
-
64
- def find_visible
65
- list Podio.connection.get("/news/").body
66
- end
67
-
68
- def find_all
69
- list Podio.connection.get("/news/").body
70
- end
71
-
72
- def find_all_by_locale(locale)
73
- list Podio.connection.get('/news/?locale=#{locale}').body
74
- end
75
-
76
- def find_all_by_target_group(target_group)
77
- list Podio.connection.get('/news/?target_group=#{target_group}').body
78
- end
79
-
80
- def find_all_by_locale_and_group(locale, group)
81
- list Podio.connection.get('/news/?locale=#{locale}?target_group=#{group}').body
82
- end
83
-
84
- end
85
- end