yam 0.0.6 → 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 (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