podio 0.8.0 → 1.0.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 (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