yam 0.0.6 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data.tar.gz.sig +0 -0
  2. data/.travis.yml +5 -0
  3. data/.yardopts +10 -0
  4. data/AUTHORS +1 -0
  5. data/CHANGELOG.md +7 -0
  6. data/CONTRIBUTING.md +0 -7
  7. data/Gemfile +27 -1
  8. data/README.md +190 -67
  9. data/Rakefile +9 -3
  10. data/certs/public.pem +20 -0
  11. data/lib/yammer.rb +47 -0
  12. data/lib/yammer/api.rb +29 -0
  13. data/lib/yammer/api/autocomplete.rb +39 -0
  14. data/lib/yammer/api/group.rb +92 -0
  15. data/lib/yammer/api/group_membership.rb +46 -0
  16. data/lib/yammer/api/invitation.rb +39 -0
  17. data/lib/yammer/api/like.rb +57 -0
  18. data/lib/yammer/api/message.rb +227 -0
  19. data/lib/yammer/api/network.rb +35 -0
  20. data/lib/yammer/api/notification.rb +32 -0
  21. data/lib/yammer/api/open_graph_object.rb +92 -0
  22. data/lib/yammer/api/pending_attachment.rb +64 -0
  23. data/lib/yammer/api/search.rb +42 -0
  24. data/lib/yammer/api/subscription.rb +32 -0
  25. data/lib/yammer/api/thread.rb +37 -0
  26. data/lib/yammer/api/topic.rb +37 -0
  27. data/lib/yammer/api/user.rb +168 -0
  28. data/lib/yammer/api_handler.rb +27 -0
  29. data/lib/yammer/api_response.rb +57 -0
  30. data/lib/yammer/base.rb +208 -0
  31. data/lib/yammer/client.rb +100 -0
  32. data/lib/yammer/configurable.rb +81 -0
  33. data/lib/yammer/error.rb +75 -0
  34. data/lib/yammer/group.rb +27 -0
  35. data/lib/yammer/group_membership.rb +25 -0
  36. data/lib/yammer/http_adapter.rb +100 -0
  37. data/lib/yammer/identity_map.rb +56 -0
  38. data/lib/yammer/message.rb +32 -0
  39. data/lib/yammer/message_body.rb +27 -0
  40. data/lib/yammer/pending_attachment.rb +19 -0
  41. data/lib/yammer/thread.rb +58 -0
  42. data/lib/yammer/user.rb +66 -0
  43. data/lib/yammer/version.rb +32 -0
  44. data/{lib/yam/configuration.rb → spec/api/autocomplete_spec.rb} +18 -23
  45. data/spec/api/group_membership_spec.rb +48 -0
  46. data/spec/api/group_spec.rb +76 -0
  47. data/spec/api/invitation_spec.rb +60 -0
  48. data/spec/api/like_spec.rb +46 -0
  49. data/spec/api/message_spec.rb +136 -0
  50. data/spec/api/network_spec.rb +41 -0
  51. data/{lib/yam/client.rb → spec/api/notification_spec.rb} +22 -4
  52. data/spec/api/open_graph_object_spec.rb +67 -0
  53. data/spec/api/pending_attachment_spec.rb +56 -0
  54. data/{lib/yam/constants.rb → spec/api/search_spec.rb} +21 -8
  55. data/spec/api/subscription_spec.rb +41 -0
  56. data/{lib/yam.rb → spec/api/thread_spec.rb} +19 -12
  57. data/{lib/yam/request.rb → spec/api/topic_spec.rb} +19 -15
  58. data/spec/api/user_spec.rb +108 -0
  59. data/spec/api_response.rb +86 -0
  60. data/spec/client_spec.rb +364 -0
  61. data/spec/error_spec.rb +88 -0
  62. data/spec/fixtures/group.json +1 -0
  63. data/spec/fixtures/message.json +1 -0
  64. data/spec/fixtures/messages_in_thread.json +1 -0
  65. data/spec/fixtures/portal_thread.json +1 -0
  66. data/spec/fixtures/private_thread.json +1 -0
  67. data/spec/fixtures/public_thread.json +1 -0
  68. data/spec/fixtures/user.json +1 -0
  69. data/spec/fixtures/users_followed.json +1 -0
  70. data/spec/fixtures/users_following.json +1 -0
  71. data/spec/http_adapter_spec.rb +109 -0
  72. data/spec/identity_map_spec.rb +127 -0
  73. data/spec/mocks/attachment.txt +1 -0
  74. data/spec/model/base_spec.rb +196 -0
  75. data/spec/model/group_membership_spec.rb +57 -0
  76. data/spec/model/group_spec.rb +73 -0
  77. data/spec/model/message_spec.rb +74 -0
  78. data/spec/model/thread_spec.rb +91 -0
  79. data/spec/model/user_spec.rb +222 -0
  80. data/spec/spec_helper.rb +39 -14
  81. data/yam.gemspec +50 -28
  82. metadata +270 -187
  83. metadata.gz.sig +0 -0
  84. data/lib/yam/api.rb +0 -53
  85. data/lib/yam/connection.rb +0 -57
  86. data/lib/yam/version.rb +0 -20
  87. data/spec/yam/client_spec.rb +0 -50
  88. data/spec/yam_spec.rb +0 -87
data/lib/yammer.rb ADDED
@@ -0,0 +1,47 @@
1
+ # Copyright (c) Microsoft Corporation
2
+ # All rights reserved.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR
8
+ # CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
9
+ # WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE,
10
+ # FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ # See the Apache Version 2.0 License for specific language governing
13
+ # permissions and limitations under the License.
14
+
15
+ require 'yammer/version'
16
+ require 'yammer/error'
17
+ require 'yammer/configurable'
18
+ require 'yammer/api'
19
+ require 'yammer/http_adapter'
20
+ require 'yammer/client'
21
+ require 'yammer/api_handler'
22
+ require 'yammer/api_response'
23
+ require 'yammer/identity_map'
24
+ require 'yammer/base'
25
+ require 'yammer/user'
26
+ require 'yammer/group'
27
+ require 'yammer/group_membership'
28
+ require 'yammer/message'
29
+ require 'yammer/thread'
30
+
31
+ module Yammer
32
+ class << self
33
+ include Configurable
34
+ include ApiHandler
35
+
36
+ def to_s
37
+ "<#{self.name}: #{self.options.inspect}>"
38
+ end
39
+
40
+ private
41
+ def method_missing(method_name, *args, &block)
42
+ return super unless api_handler.respond_to?(method_name)
43
+ api_handler.send(method_name, *args, &block)
44
+ end
45
+ end
46
+ end
47
+ Yammer.reset!
data/lib/yammer/api.rb ADDED
@@ -0,0 +1,29 @@
1
+ # Copyright (c) Microsoft Corporation
2
+ # All rights reserved.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR
8
+ # CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
9
+ # WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE,
10
+ # FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ # See the Apache Version 2.0 License for specific language governing
13
+ # permissions and limitations under the License.
14
+
15
+ require 'yammer/api/user'
16
+ require 'yammer/api/group'
17
+ require 'yammer/api/group_membership'
18
+ require 'yammer/api/message'
19
+ require 'yammer/api/thread'
20
+ require 'yammer/api/search'
21
+ require 'yammer/api/topic'
22
+ require 'yammer/api/like'
23
+ require 'yammer/api/autocomplete'
24
+ require 'yammer/api/network'
25
+ require 'yammer/api/notification'
26
+ require 'yammer/api/pending_attachment'
27
+ require 'yammer/api/invitation'
28
+ require 'yammer/api/subscription'
29
+ require 'yammer/api/open_graph_object'
@@ -0,0 +1,39 @@
1
+ # Copyright (c) Microsoft Corporation
2
+ # All rights reserved.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR
8
+ # CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
9
+ # WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE,
10
+ # FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ # See the Apache Version 2.0 License for specific language governing
13
+ # permissions and limitations under the License.
14
+
15
+ module Yammer
16
+ module Api
17
+ module Autocomplete
18
+
19
+ # @see https://developer.yammer.com/restapi/#rest-search
20
+ # @api_path /api/v1/autocomplete/ranked
21
+ # @rate_limited Yes
22
+ # @authentication authenticated user context
23
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
24
+ # @return [Yammer::ApiResponse]
25
+ # @param [Hash] opts the options to fetch a thread with
26
+ # @option opts [String] :prefix
27
+ # @option opts [String] :models
28
+ # @option opts [Integer] :network_id
29
+ # @option opts [Integer] :include_site_actions
30
+ # @option opts [Boolean] :extended]
31
+ # @option opts [Boolean] :include_network_domainss
32
+ # @example Fetch data for the thread
33
+ # Yammer.search(:prefix => 'pizza', :models => 'user:3,group:8,topic:10')
34
+ def autocomplete(opts={})
35
+ get('/api/v1/autocomplete/ranked', opts)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,92 @@
1
+ # Copyright (c) Microsoft Corporation
2
+ # All rights reserved.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR
8
+ # CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
9
+ # WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE,
10
+ # FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ # See the Apache Version 2.0 License for specific language governing
13
+ # permissions and limitations under the License.
14
+
15
+ module Yammer
16
+ module Api
17
+ module Group
18
+
19
+ # @see https://developer.yammer.com/restapi/#rest-groups
20
+ # @rate_limited Yes
21
+ # @authentication Requires user context
22
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
23
+ # @return [Yammer::ApiResponse]
24
+ # @param [Hash] opts the opts to fetch a thread with
25
+ # @option opts [Integer] :page
26
+ # @option opts [String] :sort_by sort groups by created_on, creator, name default order is by number of messages
27
+ # @option opts [String] :letter groups starting with letter
28
+ # @example Fetch all groups for authenticated user's network
29
+ # Yammer.all_groups
30
+ def all_groups(opts={})
31
+ get("/api/v1/groups", opts)
32
+ end
33
+
34
+ # @see https://developer.yammer.com/restapi/#rest-groups
35
+ # @rate_limited Yes
36
+ # @authentication Requires user context
37
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
38
+ # @return [Yammer::ApiResponse]
39
+ # @param id [Integer] the group ID
40
+ # @example Fetch data for specified group
41
+ # Yammer.get_group(74)
42
+ def get_group(id)
43
+ get("/api/v1/groups/#{id}")
44
+ end
45
+
46
+ # @see https://developer.yammer.com/restapi/#rest-groups
47
+ # @rate_limited Yes
48
+ # @authentication Requires user context
49
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
50
+ # @return [Yammer::ApiResponse]
51
+ # @param [Hash] opts the opts to fetch a thread with
52
+ # @option opts [String] :name
53
+ # @option opts [String] :description
54
+ # @option opts [Boolean] :private
55
+ # @option opts [Boolean] :show_in_directory
56
+ # @example Create a new public group
57
+ # Yammer.create_group(:name => "new group name", :private => "false")
58
+ def create_group(opts={})
59
+ post("/api/v1/groups", opts)
60
+ end
61
+
62
+ # @see https://developer.yammer.com/restapi/#rest-groups
63
+ # @rate_limited Yes
64
+ # @authentication Requires user context
65
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
66
+ # @return [Yammer::ApiResponse]
67
+ # @param id [Integer] the group ID
68
+ # @param [Hash] opts
69
+ # @option opts [String] :name
70
+ # @option opts [String] :description
71
+ # @option opts [Boolean] :private
72
+ # @option opts [Boolean] :show_in_directory
73
+ # @example Update data for a given group
74
+ # Yammer.update_group(74, :name => "new group name")
75
+ def update_group(id, opts={})
76
+ post("/api/v1/groups/#{id}", opts)
77
+ end
78
+
79
+ # @see https://developer.yammer.com/restapi/#rest-groups
80
+ # @rate_limited Yes
81
+ # @authentication Requires user context
82
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
83
+ # @return [Yammer::ApiResponse]
84
+ # @param id [Integer] the user ID
85
+ # @example Fetch groups for a given user
86
+ # Yammer.groups_for_user(74)
87
+ def groups_for_user(id)
88
+ get("/api/v1/groups/for_user/#{id}")
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,46 @@
1
+ # Copyright (c) Microsoft Corporation
2
+ # All rights reserved.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR
8
+ # CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
9
+ # WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE,
10
+ # FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ # See the Apache Version 2.0 License for specific language governing
13
+ # permissions and limitations under the License.
14
+
15
+ module Yammer
16
+ module Api
17
+ module GroupMembership
18
+
19
+ # @see https://developer.yammer.com/restapi/#rest-group_memberships
20
+ # @api_path /api/v1/group_memberships/id
21
+ # @rate_limited Yes
22
+ # @authentication Requires user context
23
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
24
+ # @return [Yammer::ApiResponse]
25
+ # @param id [Integer] the group membership ID
26
+ # @example Fetch data for the thread
27
+ # Yammer.get_group_membership(7)
28
+ def get_group_membership(id)
29
+ get("/api/v1/group_memberships/#{id}")
30
+ end
31
+
32
+ # @see https://developer.yammer.com/restapi/#rest-groups
33
+ # @api_path /api/v1/group_memberships
34
+ # @rate_limited Yes
35
+ # @authentication Requires user context
36
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
37
+ # @return [Yammer::ApiResponse]
38
+ # @param id [Integer] the group ID
39
+ # @example Fetch data for the thread
40
+ # Yammer.create_group_membership(74)
41
+ def create_group_membership(id)
42
+ post("/api/v1/group_memberships", :group_id => id)
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,39 @@
1
+ # Copyright (c) Microsoft Corporation
2
+ # All rights reserved.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR
8
+ # CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
9
+ # WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE,
10
+ # FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ # See the Apache Version 2.0 License for specific language governing
13
+ # permissions and limitations under the License.
14
+
15
+
16
+ module Yammer
17
+ module Api
18
+ module Invitation
19
+
20
+ # @see https://developer.yammer.com/restapi/#rest-invitations
21
+ # @api_path /api/v1/invitations
22
+ # @rate_limited Yes
23
+ # @authentication Requires user context
24
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
25
+ # @return [Yammer::ApiResponse]
26
+ # @param [String, Array] email or list of email addresses to send invitations to
27
+ # @example Fetch data for the thread
28
+ #
29
+ # Yammer.invite(%{ bob@yammer.com alice@yammer.com })
30
+ #
31
+ # Yammer.invite('bob@yammer.com, alice@yammer.com')
32
+ def invite(email)
33
+ email = email.strip if email.is_a?(String)
34
+ email = email.join(',') if email.is_a?(Array)
35
+ post('/api/v1/invitations', :email => email)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,57 @@
1
+ # Copyright (c) Microsoft Corporation
2
+ # All rights reserved.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR
8
+ # CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
9
+ # WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE,
10
+ # FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ # See the Apache Version 2.0 License for specific language governing
13
+ # permissions and limitations under the License.
14
+
15
+ module Yammer
16
+ module Api
17
+ module Like
18
+
19
+ # Delivers a ‘like’ action to the activity stream
20
+ # @see https://developer.yammer.com/
21
+ # @api_path /api/v1/likes
22
+ # @rate_limited Yes
23
+ # @authentication Requires user context
24
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
25
+ # @return [Yammer::ApiResponse]
26
+ # @param [Integer] id
27
+ # @param [String] type
28
+ def like(type, id)
29
+ post('/api/v1/likes', :id => id, :type => type)
30
+ end
31
+
32
+ # Unlike
33
+ # @see https://developer.yammer.com/
34
+ # @api_path /api/v1/likes
35
+ # @rate_limited Yes
36
+ # @authentication Requires user context
37
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
38
+ # @return [Yammer::ApiResponse]
39
+ # @param [Integer] id
40
+ def unlike(id)
41
+ delete("/api/v1/likes/#{id}")
42
+ end
43
+
44
+ # Used to determine if current user likes ogo
45
+ # @see https://developer.yammer.com/
46
+ # @api_path /api/v1/likes
47
+ # @rate_limited Yes
48
+ # @authentication Requires user context
49
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
50
+ # @return [Yammer::ApiResponse]
51
+ # @param [Integer] id
52
+ def likes_open_graph_object?(id)
53
+ get("/api/v1/likes/open_graph_object/#{id}")
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,227 @@
1
+ # Copyright (c) Microsoft Corporation
2
+ # All rights reserved.
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR
8
+ # CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
9
+ # WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE,
10
+ # FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ # See the Apache Version 2.0 License for specific language governing
13
+ # permissions and limitations under the License.
14
+
15
+ module Yammer
16
+ module Api
17
+ module Message
18
+
19
+ # @see https://developer.yammer.com/restapi/#rest-messages
20
+ # @api_path /api/v1/messages
21
+ # @rate_limited Yes
22
+ # @authentication Requires user context
23
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
24
+ # @return [Yammer::ApiResponse]
25
+ # @param body [String] Message body
26
+ # @param [Hash] opts the options to create a message with
27
+ # @option opts [Integer] :cc
28
+ # @option opts [Integer] :replied_to_id
29
+ # @option opts [Integer] :group_id
30
+ # @option opts [Array<Integer>] :direct_to_user_ids
31
+ # @option opts [Array<Integer>] :pending_attachment_ids
32
+ # @example Create a new message
33
+ # msg1 = Yammer.create_message('what are you workings on?')
34
+ #
35
+ # msg2 = Yammer.create_message('building a yammer client', :replied_to_id => msg.id)
36
+ def create_message(body, opts={})
37
+ opts[:body] = body
38
+ post("/api/v1/messages", opts)
39
+ end
40
+
41
+ # @see https://developer.yammer.com/restapi/#rest-messages
42
+ # @api_path /api/v1/messages
43
+ # @rate_limited Yes
44
+ # @authentication Requires user context
45
+ # @raise [Yammer::Error::BadRequest] Error raised when you try to delete a message that
46
+ # you did not create
47
+ # @return [Yammer::ApiResponse]
48
+ # @param id [Integer] the thread ID
49
+ # @example Delete an existing message
50
+ # result = Yammer.delete_message(1)
51
+ def delete_message(id)
52
+ delete("/api/v1/messages/#{id}")
53
+ end
54
+
55
+ # @see https://developer.yammer.com/restapi/#rest-messages
56
+ # @api_path /api/v1/messages
57
+ # @rate_limited Yes
58
+ # @authentication Requires user context
59
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
60
+ # @return [Yammer::ApiResponse]
61
+ # @param id [Integer] the ID of the message to be fetched
62
+ # @example Fetch an existing message
63
+ # msg = Yammer.get_message(3)
64
+ def get_message(id)
65
+ get("/api/v1/messages/#{id}")
66
+ end
67
+
68
+ # @see https://developer.yammer.com/restapi/#rest-messages
69
+ # @api_path /api/v1/messages
70
+ # @rate_limited Yes
71
+ # @authentication Requires user context
72
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
73
+ # @return [Yammer::ApiResponse]
74
+ # @param [Hash] opts the options to fetch the messages with
75
+ # @option opts [Integer] :newer_than
76
+ # @example Fetch a list of messages from the company feed
77
+ # msgs = Yammer.all_messages
78
+ def all_messages(opts={})
79
+ get("/api/v1/messages", opts)
80
+ end
81
+
82
+ # @see https://developer.yammer.com/restapi/#rest-messages
83
+ # @api_path /api/v1/messages
84
+ # @rate_limited Yes
85
+ # @authentication Requires user context
86
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
87
+ # @return [Yammer::ApiResponse]
88
+ # @param [Hash] opts the options to fetch the messages with
89
+ # @option opts [Integer] :newer_than
90
+ # @example Fetch list messages sent by authenticated user
91
+ # msgs = Yammer.messages_sent
92
+ def messages_sent(opts={})
93
+ get("/api/v1/messages/sent", opts)
94
+ end
95
+
96
+ # @see https://developer.yammer.com/restapi/#rest-messages
97
+ # @api_path /api/v1/messages
98
+ # @rate_limited Yes
99
+ # @authentication Requires user context
100
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
101
+ # @return [Yammer::ApiResponse]
102
+ # @param [Hash] opts the options to fetch the messages with
103
+ # @option opts [Integer] :newer_than
104
+ # @example Fetch list of messages sent to authenitcated user
105
+ # msgs = Yammer.messages_received
106
+ def messages_received(opts={})
107
+ get("/api/v1/messages/received", opts)
108
+ end
109
+
110
+ # @see https://developer.yammer.com/restapi/#rest-messages
111
+ # @api_path /api/v1/messages
112
+ # @rate_limited Yes
113
+ # @authentication Requires user context
114
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
115
+ # @return [Yammer::ApiResponse]
116
+ # @param [Hash] opts the options to fetch the messages with
117
+ # @option opts [Integer] :newer_than
118
+ # @example Fetch a list of private messages sent to authenitcated user
119
+ # msgs = Yammer.private_messages
120
+ def private_messages(opts={})
121
+ get("/api/v1/messages/private", opts)
122
+ end
123
+
124
+ # @see https://developer.yammer.com/restapi/#rest-messages
125
+ # @api_path /api/v1/messages
126
+ # @rate_limited Yes
127
+ # @authentication Requires user context
128
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
129
+ # @return [Yammer::ApiResponse]
130
+ # @param [Hash] opts the options to fetch the messages with
131
+ # @option opts [Integer] :newer_than
132
+ # @example Fetch a list of messages being followed by authenitcated user
133
+ # msgs = Yammer.followed_messages
134
+ def followed_messages(opts={})
135
+ get("/api/v1/messages/following", opts)
136
+ end
137
+
138
+ # @see https://developer.yammer.com/restapi/#rest-messages
139
+ # @api_path /api/v1/messages
140
+ # @rate_limited Yes
141
+ # @authentication Requires user context
142
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
143
+ # @return [Yammer::ApiResponse]
144
+ # @param id [Integer] the ID of the user whose public messages we want to look at
145
+ # @param [Hash] opts the options to fetch the messages with
146
+ # @option opts [Integer] :newer_than
147
+ # @example Fetch a list of messages sent by a user in the authenticated user's network
148
+ # msgs = Yammer.messages_from_user(8)
149
+ def messages_from_user(id, opts={})
150
+ get("/api/v1/messages/from_user/#{id}", opts)
151
+ end
152
+
153
+ # @see https://developer.yammer.com/restapi/#rest-messages
154
+ # @api_path /api/v1/messages
155
+ # @rate_limited Yes
156
+ # @authentication Requires user context
157
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
158
+ # @return [Yammer::ApiResponse]
159
+ # @param id [Integer] the topic ID
160
+ # @param [Hash] opts the options to fetch the messages with
161
+ # @option opts [Integer] :newer_than
162
+ # @example Fetch messages that have been tagged with a given topic
163
+ # msgs = Yammer.messages_about_topic(1)
164
+ def messages_about_topic(id, opts={})
165
+ get("/api/v1/messages/about_topic/#{id}", opts)
166
+ end
167
+
168
+ # @see https://developer.yammer.com/restapi/#rest-messages
169
+ # @api_path /api/v1/messages
170
+ # @rate_limited Yes
171
+ # @authentication Requires user context
172
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
173
+ # @return [Yammer::ApiResponse]
174
+ # @param id [Integer] the ID of the group whose messages you wish to fetch
175
+ # @param [Hash] opts the options to fetch the messages with
176
+ # @option opts [Integer] :newer_than
177
+ # @example Fetch a list of messages in a given group
178
+ # msgs = Yammer.messages_in_group(38)
179
+ def messages_in_group(id, opts={})
180
+ get("/api/v1/messages/in_group/#{id}", opts)
181
+ end
182
+
183
+ # @see https://developer.yammer.com/restapi/#rest-messages
184
+ # @api_path /api/v1/messages
185
+ # @rate_limited Yes
186
+ # @authentication Requires user context
187
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
188
+ # @return [Yammer::ApiResponse]
189
+ # @param id [Integer] the ID of the user for whom you wish to get a list of messages they have liked
190
+ # @param [Hash] opts the options to fetch the messages with
191
+ # @option opts [Integer] :newer_than
192
+ # @example Fetch a list of messages liked by a given user
193
+ # msgs = Yammer.messages_liked_by(4)
194
+ def messages_liked_by(id, opts={})
195
+ get("/api/v1/messages/liked_by/#{id}", opts)
196
+ end
197
+
198
+ # @see https://developer.yammer.com/restapi/#rest-messages
199
+ # @api_path /api/v1/messages
200
+ # @rate_limited Yes
201
+ # @authentication Requires user context
202
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
203
+ # @return [Yammer::ApiResponse]
204
+ # @param id [Integer] the thread ID
205
+ # @param [Hash] opts the options to fetch the messages with
206
+ # @option opts [Integer] :newer_than
207
+ # @example Fetch a list of messages in a given thread
208
+ # msgs = Yammer.messages_in_thread(10)
209
+ def messages_in_thread(id, opts={})
210
+ get("/api/v1/messages/in_thread/#{id}", opts)
211
+ end
212
+
213
+ # @see https://developer.yammer.com/restapi/#rest-messages
214
+ # @api_path /api/v1/messages/open_graph_objects
215
+ # @rate_limited Yes
216
+ # @authentication Requires user context
217
+ # @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
218
+ # @return [Yammer::ApiResponse]
219
+ # @param id [Integer] the thread ID
220
+ # @example Fetch a list of messages in a given thread
221
+ # msgs = Yammer.messages_for_open_graph_pbject(10)
222
+ def messages_for_open_graph_object(id)
223
+ get("/api/v1/messages/messages/open_graph_objects/#{id}")
224
+ end
225
+ end
226
+ end
227
+ end