yam 0.0.6 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/.travis.yml +5 -0
- data/.yardopts +10 -0
- data/AUTHORS +1 -0
- data/CHANGELOG.md +7 -0
- data/CONTRIBUTING.md +0 -7
- data/Gemfile +27 -1
- data/README.md +190 -67
- data/Rakefile +9 -3
- data/certs/public.pem +20 -0
- data/lib/yammer.rb +47 -0
- data/lib/yammer/api.rb +29 -0
- data/lib/yammer/api/autocomplete.rb +39 -0
- data/lib/yammer/api/group.rb +92 -0
- data/lib/yammer/api/group_membership.rb +46 -0
- data/lib/yammer/api/invitation.rb +39 -0
- data/lib/yammer/api/like.rb +57 -0
- data/lib/yammer/api/message.rb +227 -0
- data/lib/yammer/api/network.rb +35 -0
- data/lib/yammer/api/notification.rb +32 -0
- data/lib/yammer/api/open_graph_object.rb +92 -0
- data/lib/yammer/api/pending_attachment.rb +64 -0
- data/lib/yammer/api/search.rb +42 -0
- data/lib/yammer/api/subscription.rb +32 -0
- data/lib/yammer/api/thread.rb +37 -0
- data/lib/yammer/api/topic.rb +37 -0
- data/lib/yammer/api/user.rb +168 -0
- data/lib/yammer/api_handler.rb +27 -0
- data/lib/yammer/api_response.rb +57 -0
- data/lib/yammer/base.rb +208 -0
- data/lib/yammer/client.rb +100 -0
- data/lib/yammer/configurable.rb +81 -0
- data/lib/yammer/error.rb +75 -0
- data/lib/yammer/group.rb +27 -0
- data/lib/yammer/group_membership.rb +25 -0
- data/lib/yammer/http_adapter.rb +100 -0
- data/lib/yammer/identity_map.rb +56 -0
- data/lib/yammer/message.rb +32 -0
- data/lib/yammer/message_body.rb +27 -0
- data/lib/yammer/pending_attachment.rb +19 -0
- data/lib/yammer/thread.rb +58 -0
- data/lib/yammer/user.rb +66 -0
- data/lib/yammer/version.rb +32 -0
- data/{lib/yam/configuration.rb → spec/api/autocomplete_spec.rb} +18 -23
- data/spec/api/group_membership_spec.rb +48 -0
- data/spec/api/group_spec.rb +76 -0
- data/spec/api/invitation_spec.rb +60 -0
- data/spec/api/like_spec.rb +46 -0
- data/spec/api/message_spec.rb +136 -0
- data/spec/api/network_spec.rb +41 -0
- data/{lib/yam/client.rb → spec/api/notification_spec.rb} +22 -4
- data/spec/api/open_graph_object_spec.rb +67 -0
- data/spec/api/pending_attachment_spec.rb +56 -0
- data/{lib/yam/constants.rb → spec/api/search_spec.rb} +21 -8
- data/spec/api/subscription_spec.rb +41 -0
- data/{lib/yam.rb → spec/api/thread_spec.rb} +19 -12
- data/{lib/yam/request.rb → spec/api/topic_spec.rb} +19 -15
- data/spec/api/user_spec.rb +108 -0
- data/spec/api_response.rb +86 -0
- data/spec/client_spec.rb +364 -0
- data/spec/error_spec.rb +88 -0
- data/spec/fixtures/group.json +1 -0
- data/spec/fixtures/message.json +1 -0
- data/spec/fixtures/messages_in_thread.json +1 -0
- data/spec/fixtures/portal_thread.json +1 -0
- data/spec/fixtures/private_thread.json +1 -0
- data/spec/fixtures/public_thread.json +1 -0
- data/spec/fixtures/user.json +1 -0
- data/spec/fixtures/users_followed.json +1 -0
- data/spec/fixtures/users_following.json +1 -0
- data/spec/http_adapter_spec.rb +109 -0
- data/spec/identity_map_spec.rb +127 -0
- data/spec/mocks/attachment.txt +1 -0
- data/spec/model/base_spec.rb +196 -0
- data/spec/model/group_membership_spec.rb +57 -0
- data/spec/model/group_spec.rb +73 -0
- data/spec/model/message_spec.rb +74 -0
- data/spec/model/thread_spec.rb +91 -0
- data/spec/model/user_spec.rb +222 -0
- data/spec/spec_helper.rb +39 -14
- data/yam.gemspec +50 -28
- metadata +270 -187
- metadata.gz.sig +0 -0
- data/lib/yam/api.rb +0 -53
- data/lib/yam/connection.rb +0 -57
- data/lib/yam/version.rb +0 -20
- data/spec/yam/client_spec.rb +0 -50
- data/spec/yam_spec.rb +0 -87
@@ -0,0 +1,35 @@
|
|
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 Network
|
18
|
+
|
19
|
+
# @see https://developer.yammer.com/restapi/#rest-network
|
20
|
+
# @api_path /api/v1//networks/current
|
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 [Boolean] :include_suspended
|
27
|
+
# @option opts [Boolean] :exclude_own_messages_from_unseen
|
28
|
+
# @example Fetch all networks that the current user is a member of
|
29
|
+
# Yammer.current_networks
|
30
|
+
def current_networks(opts={})
|
31
|
+
get('/api/v1/networks/current', opts)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,32 @@
|
|
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 Notification
|
18
|
+
|
19
|
+
# @see https://developer.yammer.com/restapi/#rest-notifications
|
20
|
+
# @api_path /api/v1/streams/notifications
|
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
|
+
# @example Fetch notifications for authenticated user
|
26
|
+
# Yammer.notifications
|
27
|
+
def notifications
|
28
|
+
get('/api/v1/streams/notifications')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
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 OpenGraphObject
|
18
|
+
|
19
|
+
# @see https://developer.yammer.com/
|
20
|
+
# @api_path /api/v1/open_graph_objects/
|
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 [String] url The URL of the open graph object
|
26
|
+
# @param [Hash] props The properties of this open graph object
|
27
|
+
# @option props [String] :image
|
28
|
+
# @option props [String] :description
|
29
|
+
# @option props [String] :site_name
|
30
|
+
# @option props [String] :title
|
31
|
+
# @option props [String] :media_url
|
32
|
+
# @option props [String] :media_type
|
33
|
+
# @option props [String] :media_width
|
34
|
+
# @option props [String] :media_height
|
35
|
+
# @example Create a new open graph object
|
36
|
+
#
|
37
|
+
# Yammer.create_open_graph_object('http://www.microsoft.com', {
|
38
|
+
# :site_name => 'Microsoft'
|
39
|
+
# :image => 'https://microsoft.com/global/images/test.jpg'
|
40
|
+
# })
|
41
|
+
def create_open_graph_object(url, props={})
|
42
|
+
post("/api/v1/open_graph_objects", { :url => url, :properites => props })
|
43
|
+
end
|
44
|
+
|
45
|
+
# Subscribes the current user to the open graph object with the request id.
|
46
|
+
# @see https://developer.yammer.com/
|
47
|
+
# @api_path /api/v1/open_graph_objects/
|
48
|
+
# @rate_limited Yes
|
49
|
+
# @authentication Requires user context
|
50
|
+
# @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
|
51
|
+
# @return [Yammer::ApiResponse]
|
52
|
+
# @param [Integer] id The ID of the open graph object
|
53
|
+
# @example Subscribe to open graph object
|
54
|
+
#
|
55
|
+
# => Yammer.follow_open_graph_object(8)
|
56
|
+
def follow_open_graph_object(id)
|
57
|
+
post('/api/v1/subscriptions', :target_id => id, :target_type => 'OpenGraphObject')
|
58
|
+
end
|
59
|
+
|
60
|
+
# Determines if the current user follows an open graph object
|
61
|
+
# @see https://developer.yammer.com/
|
62
|
+
# @api_path /api/v1/open_graph_objects/
|
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 [Integer] id The ID of the open graph object
|
68
|
+
# @example Verify to open graph object
|
69
|
+
#
|
70
|
+
# => Yammer.following_open_graph_object?(89)
|
71
|
+
def is_following_open_graph_object?(id)
|
72
|
+
get("/api/v1/subscriptions/to_open_graph_object/#{id}")
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
# Returns open graph objects in a user's activity stream
|
77
|
+
# @see https://developer.yammer.com/
|
78
|
+
# @api_path /api/v1/streams/activities
|
79
|
+
# @rate_limited Yes
|
80
|
+
# @authentication Requires user context
|
81
|
+
# @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
|
82
|
+
# @return [Yammer::ApiResponse]
|
83
|
+
# @param [Integer] id The ID of the users whose stream of open graph objects we want to fetch
|
84
|
+
# @example Get open graph object in a given user's activity stream
|
85
|
+
#
|
86
|
+
# Yammer.get_activity_stream_open_graph_objects?(3)
|
87
|
+
def get_activity_stream_open_graph_objects(id)
|
88
|
+
get("/api/v1/streams/activities", :owner_type => 'open_graph_object', :owner_id => id)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,64 @@
|
|
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 PendingAttachment
|
18
|
+
|
19
|
+
# Create a new pending attachment owned by authenticated user
|
20
|
+
# @see https://developer.yammer.com/restapi/#rest-messages
|
21
|
+
# @api_path /api/v1/pending_attachments
|
22
|
+
# @rate_limited Yes
|
23
|
+
# @authentication User context
|
24
|
+
# @raise [Yammer::Error::Unauthorized Yammer::Error::Forbidden] Error when supplied user credentials are not valid
|
25
|
+
# when user network does not allow attachments
|
26
|
+
# @return [Yammer::ApiResponse]
|
27
|
+
# @example Fetch existing pending attachment
|
28
|
+
# Yammer.get_pending_attachment(62)
|
29
|
+
def get_pending_attachment(id)
|
30
|
+
get("/api/v1/pending_attachments/#{id}")
|
31
|
+
end
|
32
|
+
|
33
|
+
# Delete a pending attachment owned by the authenticated user
|
34
|
+
# @see https://developer.yammer.com/restapi/#rest-messages
|
35
|
+
# @api_path /api/v1/pending_attachments
|
36
|
+
# @rate_limited Yes
|
37
|
+
# @authentication User context
|
38
|
+
# @raise [Yammer::Error::Unauthorized Yammer::Error::NotFound] Error raised when supplied user credentials are not valid
|
39
|
+
# when attachment cannot be found
|
40
|
+
# @return [Yammer::ApiResponse]
|
41
|
+
# @example Delete existing pending attachment
|
42
|
+
# Yammer.delete_pending_attachment(34)
|
43
|
+
def delete_pending_attachment(id)
|
44
|
+
delete("/api/v1/pending_attachments/#{id}")
|
45
|
+
end
|
46
|
+
|
47
|
+
# Fetch a pending attachment owned by authenticated user
|
48
|
+
# @see https://developer.yammer.com/restapi/#rest-messages
|
49
|
+
# @api_path /api/v1/pending_attachments
|
50
|
+
# @rate_limited Yes
|
51
|
+
# @authentication User context
|
52
|
+
# @raise [Yammer::Error::Unauthorized Yammer::Error::NotFound] Error raised when supplied user credentials are not valid
|
53
|
+
# when attachment cannot be found
|
54
|
+
# @return [Yammer::ApiResponse]
|
55
|
+
# @example Create new pending attachment
|
56
|
+
# file = File.open('~/attachment.txt', 'r')
|
57
|
+
# Yammer.create_pending_attachment(file)
|
58
|
+
#
|
59
|
+
def create_pending_attachment(attachment)
|
60
|
+
post("/api/v1/pending_attachments", :attachment => attachment)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,42 @@
|
|
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 Search
|
18
|
+
|
19
|
+
# @see https://developer.yammer.com/restapi/#rest-search
|
20
|
+
# @api_path /api/v1/search
|
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 [Hash] opts the options to fetch a thread with
|
26
|
+
# @option opts [Integer] :num_per_page
|
27
|
+
# @option opts [Integer] :page
|
28
|
+
# @option opts [Integer] :search_group
|
29
|
+
# @option opts [Integer] :search_user
|
30
|
+
# @option opts [String] :search_sort
|
31
|
+
# @option opts [String] :match
|
32
|
+
# @option opts [String] :model_types
|
33
|
+
# @option opts [String] :search_startdate
|
34
|
+
# @option opts [String] :search_enddate
|
35
|
+
# @example Search for a particular term on within current user's network
|
36
|
+
# Yammer.search(:search => 'documents')
|
37
|
+
def search(opts={})
|
38
|
+
get('/api/v1/search', opts)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,32 @@
|
|
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 Subscription
|
18
|
+
|
19
|
+
# @see https://developer.yammer.com/
|
20
|
+
# @api_path /api/v1/subscriptions/
|
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 [Integer] id
|
26
|
+
# @param [String] type
|
27
|
+
def create_subscription(type, id)
|
28
|
+
post('/api/v1/subscriptions', :target_id => id, :target_type => type)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,37 @@
|
|
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 Thread
|
18
|
+
|
19
|
+
# @see https://developer.yammer.com/restapi/#rest-threads
|
20
|
+
# @api_path /api/v1/threads/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::Response]
|
25
|
+
# @param id [Integer] the thread ID
|
26
|
+
# @param [Hash] opts the options to fetch a thread with
|
27
|
+
# @option opts [Integer] :newer_than
|
28
|
+
# @option opts [String] :threaded
|
29
|
+
# @option opts [Boolean] :exclude_own_messages_from_unseen
|
30
|
+
# @example Fetch data for the thread
|
31
|
+
# Yammer.get_thread(42)
|
32
|
+
def get_thread(id, opts={})
|
33
|
+
get("/api/v1/threads/#{id}", opts)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,37 @@
|
|
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 Topic
|
18
|
+
|
19
|
+
# @see https://developer.yammer.com/restapi/#rest-topics
|
20
|
+
# @api_path /api/v1/topics
|
21
|
+
# @rate_limited Yes
|
22
|
+
# @authentication Requires user context
|
23
|
+
# @raise [Yammer::Error::Unauthorized] Error raised when supplied
|
24
|
+
# user credentials are not valid.
|
25
|
+
# @return [Yammer::ApiResponse]
|
26
|
+
# @param id [Integer]
|
27
|
+
# @param [Hash] opts the options to fetch a thread with
|
28
|
+
# @option opts [Integer] :is_followed_by include if specified user
|
29
|
+
# is following topic that is being fetched
|
30
|
+
# @example Fetch data for the thread
|
31
|
+
# Yammer.get_topic(42, :is_followed_by => 2)
|
32
|
+
def get_topic(id, opts={})
|
33
|
+
get("/api/v1/topics/#{id}", opts)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,168 @@
|
|
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 User
|
18
|
+
|
19
|
+
# @see https://developer.yammer.com/restapi/#rest-users
|
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 opts [Hash] A customizable set of options.
|
25
|
+
# @option opts [String] :email
|
26
|
+
# @option opts [String] :full_name
|
27
|
+
# @option opts [String] :guid
|
28
|
+
# @option opts [String] :job_title
|
29
|
+
# @option opts [String] :location
|
30
|
+
# @option opts [String] :im_provider
|
31
|
+
# @option opts [String] :im_username
|
32
|
+
# @option opts [String] :work_telephone
|
33
|
+
# @option opts [String] :work_extension
|
34
|
+
# @option opts [String] :mobile_telephone
|
35
|
+
# @option opts [String] :external_profiles
|
36
|
+
# @option opts [String] :significant_other
|
37
|
+
# @option opts [String] :kids_names
|
38
|
+
# @option opts [String] :interests
|
39
|
+
# @option opts [String] :summary
|
40
|
+
# @option opts [String] :expertise
|
41
|
+
# @option opts [String] :schools_csv
|
42
|
+
# @option opts [String] :previous_companies_csv
|
43
|
+
# @option opts [String] :preferred_my_feed
|
44
|
+
# @option opts [String] :sticky_my_feed
|
45
|
+
# @option opts [String] :prescribed_my_feed
|
46
|
+
# @example create a user with the email `thekev@yammer.com`
|
47
|
+
# Yammer.create_user('thekev@yammer.com')
|
48
|
+
def create_user(opts={})
|
49
|
+
post("/api/v1/users", opts)
|
50
|
+
end
|
51
|
+
|
52
|
+
# @see https://developer.yammer.com/restapi/#rest-users
|
53
|
+
# @rate_limited Yes
|
54
|
+
# @authentication Requires user context
|
55
|
+
# @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
|
56
|
+
# @return [Yammer::ApiResponse]
|
57
|
+
# @param opts [Hash] A customizable set of options.
|
58
|
+
# @option opts [String] :email
|
59
|
+
# @option opts [String] :full_name
|
60
|
+
# @option opts [String] :guid
|
61
|
+
# @option opts [String] :job_title
|
62
|
+
# @option opts [String] :location
|
63
|
+
# @option opts [String] :im_provider
|
64
|
+
# @option opts [String] :im_username
|
65
|
+
# @option opts [String] :work_telephone
|
66
|
+
# @option opts [String] :work_extension
|
67
|
+
# @option opts [String] :mobile_telephone
|
68
|
+
# @option opts [String] :external_profiles
|
69
|
+
# @option opts [String] :significant_other
|
70
|
+
# @option opts [String] :kids_names
|
71
|
+
# @option opts [String] :interests
|
72
|
+
# @option opts [String] :summary
|
73
|
+
# @option opts [String] :expertise
|
74
|
+
# @option opts [String] :schools_csv
|
75
|
+
# @option opts [String] :previous_companies_csv
|
76
|
+
# @option opts [String] :preferred_my_feed
|
77
|
+
# @option opts [String] :sticky_my_feed
|
78
|
+
# @option opts [String] :prescribed_my_feed
|
79
|
+
# @example update info for a user with the email `thekev@yammer.com`
|
80
|
+
# Yammer.update_user(1, :job_title => 'software engineer')
|
81
|
+
def update_user(id, opts={})
|
82
|
+
put("/api/v1/users/#{id}", opts)
|
83
|
+
end
|
84
|
+
|
85
|
+
# @see https://developer.yammer.com/restapi/#rest-users
|
86
|
+
# @rate_limited Yes
|
87
|
+
# @authentication Requires user context
|
88
|
+
# @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
|
89
|
+
# @return [Yammer::ApiResponse]
|
90
|
+
# @param id [Integer, String] A Yammer user ID
|
91
|
+
# @example Delete user with ID 2
|
92
|
+
# Yammer.delete_user(2)
|
93
|
+
def delete_user(id)
|
94
|
+
delete("/api/v1/users/#{id}")
|
95
|
+
end
|
96
|
+
|
97
|
+
# @see https://developer.yammer.com/restapi/#rest-users
|
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 id [Integer, String] A Yammer user ID
|
103
|
+
# @example Fetch data user with ID 2
|
104
|
+
# Yammer.get_user(2)
|
105
|
+
def get_user(id)
|
106
|
+
get("/api/v1/users/#{id}")
|
107
|
+
end
|
108
|
+
|
109
|
+
# @see https://developer.yammer.com/restapi/#rest-users
|
110
|
+
# @rate_limited Yes
|
111
|
+
# @authentication Requires user context
|
112
|
+
# @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
|
113
|
+
# @return [Yammer::ApiResponse]
|
114
|
+
# @param email [Integer, String] A Yammer user ID
|
115
|
+
# @example Fetch data user with email `thekev@yammer.com`
|
116
|
+
# Yammer.get_user_by_email('thekev@yammer.com')
|
117
|
+
def get_user_by_email(email)
|
118
|
+
get("/api/v1/users/by_email", :email => email)
|
119
|
+
end
|
120
|
+
|
121
|
+
# @see https://developer.yammer.com/restapi/#rest-users
|
122
|
+
# @rate_limited Yes
|
123
|
+
# @authentication Requires user context
|
124
|
+
# @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
|
125
|
+
# @return [Yammer::ApiResponse]
|
126
|
+
# @example Fetch data for the authenticated user
|
127
|
+
# Yammer.current_user
|
128
|
+
def current_user
|
129
|
+
get("/api/v1/users/current")
|
130
|
+
end
|
131
|
+
|
132
|
+
# @see https://developer.yammer.com/restapi/#rest-users
|
133
|
+
# @rate_limited Yes
|
134
|
+
# @authentication Requires user context
|
135
|
+
# @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
|
136
|
+
# @return [Yammer::ApiResponse]
|
137
|
+
# @param opts [Hash] A customizable set of opts.
|
138
|
+
# @option opts [Integer] :page
|
139
|
+
# @example Fetch users from the authenticated user's network
|
140
|
+
# Yammer.all_users
|
141
|
+
def all_users(opts={})
|
142
|
+
get("/api/v1/users", opts)
|
143
|
+
end
|
144
|
+
|
145
|
+
# @rate_limited Yes
|
146
|
+
# @authentication Requires user context
|
147
|
+
# @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
|
148
|
+
# @return [Yammer::ApiResponse]
|
149
|
+
# @param id [Integer] the ID of the user whose followers you want to get
|
150
|
+
# @example Fetch users from the authenticated user's network following user whose ID is provided
|
151
|
+
# Yammer.users_following(1)
|
152
|
+
def users_following(id)
|
153
|
+
get("/api/v1/users/following/#{id}")
|
154
|
+
end
|
155
|
+
|
156
|
+
# @rate_limited Yes
|
157
|
+
# @authentication Requires user context
|
158
|
+
# @raise [Yammer::Error::Unauthorized] Error raised when supplied user credentials are not valid.
|
159
|
+
# @return [Yammer::ApiResponse]
|
160
|
+
# @param id [Integer] the ID of the user for whom you want to get the users being followed
|
161
|
+
# @example Fetch users from the authenticated user's network followed by the user whose ID is provided
|
162
|
+
# Yammer.users_followed(1)
|
163
|
+
def users_followed_by(id)
|
164
|
+
get("/api/v1/users/followed_by/#{id}")
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|