xing_api 0.4 → 0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/xing_api.rb +11 -0
- data/lib/xing_api/client.rb +4 -4
- data/lib/xing_api/group.rb +16 -0
- data/lib/xing_api/group/forum.rb +9 -0
- data/lib/xing_api/group/forum/post.rb +15 -0
- data/lib/xing_api/group/media_preview.rb +9 -0
- data/lib/xing_api/group/post.rb +17 -0
- data/lib/xing_api/group/post/comment.rb +19 -0
- data/lib/xing_api/group/post/comment/like.rb +21 -0
- data/lib/xing_api/group/post/like.rb +19 -0
- data/lib/xing_api/news/article.rb +17 -0
- data/lib/xing_api/news/article/like.rb +19 -0
- data/lib/xing_api/news/page.rb +17 -0
- data/lib/xing_api/news/page/article.rb +15 -0
- data/lib/xing_api/response_handler.rb +3 -3
- data/lib/xing_api/user.rb +0 -4
- data/lib/xing_api/version.rb +1 -1
- metadata +14 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6ebd6a8db28d4331b667fda72dc865a8efcb522
|
4
|
+
data.tar.gz: 85c819746f7f40c80d72ba2583ea223acd4b6903
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14a604c122eec6713d4c89851c9758e84dc0dab589ecc9dab2ec1d23ea6e419fe49be7d7f72cecfd9a4ad5a30453c99406f33cc2cdfa4350d92b3378528fc9e3
|
7
|
+
data.tar.gz: 8aef4b80734d9433341bfbfc0a42cc6d703c46817304e283d1970588f857c3099578d282d429b8d35fb4cf8667fcb26d747ccd8ec091a5e8cb3359ece603ee4f
|
data/lib/xing_api.rb
CHANGED
@@ -18,8 +18,19 @@ require 'xing_api/conversation'
|
|
18
18
|
require 'xing_api/conversation/attachment'
|
19
19
|
require 'xing_api/conversation/message'
|
20
20
|
require 'xing_api/group'
|
21
|
+
require 'xing_api/group/forum'
|
22
|
+
require 'xing_api/group/forum/post'
|
23
|
+
require 'xing_api/group/media_preview'
|
24
|
+
require 'xing_api/group/post'
|
25
|
+
require 'xing_api/group/post/comment'
|
26
|
+
require 'xing_api/group/post/comment/like'
|
27
|
+
require 'xing_api/group/post/like'
|
21
28
|
require 'xing_api/invite'
|
22
29
|
require 'xing_api/job'
|
30
|
+
require 'xing_api/news/article'
|
31
|
+
require 'xing_api/news/article/like'
|
32
|
+
require 'xing_api/news/page'
|
33
|
+
require 'xing_api/news/page/article'
|
23
34
|
require 'xing_api/profile_message'
|
24
35
|
require 'xing_api/profile_visit'
|
25
36
|
require 'xing_api/user'
|
data/lib/xing_api/client.rb
CHANGED
@@ -2,7 +2,7 @@ module XingApi
|
|
2
2
|
class Client
|
3
3
|
include XingApi::ResponseHandler
|
4
4
|
|
5
|
-
OAUTH_ATTRIBUTES = [:consumer_key, :consumer_secret, :oauth_token, :oauth_token_secret]
|
5
|
+
OAUTH_ATTRIBUTES = [:consumer_key, :consumer_secret, :oauth_token, :oauth_token_secret].freeze
|
6
6
|
attr_writer(*OAUTH_ATTRIBUTES)
|
7
7
|
attr_accessor :request_token_hash
|
8
8
|
|
@@ -65,8 +65,8 @@ module XingApi
|
|
65
65
|
private
|
66
66
|
|
67
67
|
def rebuild_request_token(options)
|
68
|
-
request_token = options[:request_token] ||
|
69
|
-
request_token_secret = options[:request_token_secret] ||
|
68
|
+
request_token = options[:request_token] || raise('request_token missing')
|
69
|
+
request_token_secret = options[:request_token_secret] || raise('request_token_secret missing')
|
70
70
|
OAuth::RequestToken.new(consumer, request_token, request_token_secret)
|
71
71
|
end
|
72
72
|
|
@@ -110,7 +110,7 @@ module XingApi
|
|
110
110
|
|
111
111
|
def ensure_attributes_are_set!(attribute_names)
|
112
112
|
Array(attribute_names).each do |attribute_name|
|
113
|
-
|
113
|
+
raise "#{attribute_name} is missing" unless send(attribute_name)
|
114
114
|
end
|
115
115
|
end
|
116
116
|
end
|
data/lib/xing_api/group.rb
CHANGED
@@ -1,7 +1,23 @@
|
|
1
1
|
module XingApi
|
2
2
|
class Group < XingApi::Base
|
3
|
+
def self.list(user_id, options = {})
|
4
|
+
request(:get, "/v1/users/#{user_id}/groups", options)
|
5
|
+
end
|
6
|
+
|
3
7
|
def self.search(keywords, options = {})
|
4
8
|
request(:get, '/v1/groups/find', { keywords: keywords }.merge(options))
|
5
9
|
end
|
10
|
+
|
11
|
+
def self.read(group_id, options = {})
|
12
|
+
request(:put, "/v1/groups/#{group_id}/read", options)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.join(group_id, options = {})
|
16
|
+
request(:post, "/v1/groups/#{group_id}/memberships", options)
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.leave(group_id, options = {})
|
20
|
+
request(:delete, "/v1/groups/#{group_id}/memberships", options)
|
21
|
+
end
|
6
22
|
end
|
7
23
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module XingApi
|
2
|
+
class Group
|
3
|
+
class Forum
|
4
|
+
class Post < XingApi::Base
|
5
|
+
def self.list(forum_id, options = {})
|
6
|
+
request(:get, "/v1/groups/forums/#{forum_id}/posts", options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.create(forum_id, title, content, options = {})
|
10
|
+
request(:post, "/v1/groups/forums/#{forum_id}/posts", { title: title, content: content }.merge(options))
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module XingApi
|
2
|
+
class Group
|
3
|
+
class Post < XingApi::Base
|
4
|
+
def self.list(group_id, options = {})
|
5
|
+
request(:get, "/v1/groups/#{group_id}/posts", options)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.find(post_id, options = {})
|
9
|
+
request(:get, "/v1/groups/forums/posts/#{post_id}", options)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.delete(post_id, options = {})
|
13
|
+
request(:delete, "/v1/groups/forums/posts/#{post_id}", options)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module XingApi
|
2
|
+
class Group
|
3
|
+
class Post
|
4
|
+
class Comment < XingApi::Base
|
5
|
+
def self.list(post_id, options = {})
|
6
|
+
request(:get, "/v1/groups/forums/posts/#{post_id}/comments", options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.create(post_id, content, options = {})
|
10
|
+
request(:post, "/v1/groups/forums/posts/#{post_id}/comments", { content: content }.merge(options))
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.delete(comment_id, options = {})
|
14
|
+
request(:delete, "/v1/groups/forums/posts/comments/#{comment_id}", options)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module XingApi
|
2
|
+
class Group
|
3
|
+
class Post
|
4
|
+
class Comment
|
5
|
+
class Like < XingApi::Base
|
6
|
+
def self.list(comment_id, options = {})
|
7
|
+
request(:get, "/v1/groups/forums/posts/comments/#{comment_id}/likes", options)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.create(comment_id, options = {})
|
11
|
+
request(:put, "/v1/groups/forums/posts/comments/#{comment_id}/like", options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.delete(comment_id, options = {})
|
15
|
+
request(:delete, "/v1/groups/forums/posts/comments/#{comment_id}/like", options)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module XingApi
|
2
|
+
class Group
|
3
|
+
class Post
|
4
|
+
class Like < XingApi::Base
|
5
|
+
def self.list(post_id, options = {})
|
6
|
+
request(:get, "/v1/groups/forums/posts/#{post_id}/likes", options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.create(post_id, options = {})
|
10
|
+
request(:put, "/v1/groups/forums/posts/#{post_id}/like", options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.delete(post_id, options = {})
|
14
|
+
request(:delete, "/v1/groups/forums/posts/#{post_id}/like", options)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module XingApi
|
2
|
+
module News
|
3
|
+
class Article < XingApi::Base
|
4
|
+
def self.find(article_id, options = {})
|
5
|
+
request(:get, "/v1/news/articles/#{article_id}", options)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.update(article_id, version, options = {})
|
9
|
+
request(:put, "/v1/news/articles/#{article_id}", { version: version }.merge(options))
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.delete(article_id, version, options = {})
|
13
|
+
request(:delete, "/v1/news/articles/#{article_id}", { version: version }.merge(options))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module XingApi
|
2
|
+
module News
|
3
|
+
class Article
|
4
|
+
class Like < XingApi::Base
|
5
|
+
def self.list(article_id, options = {})
|
6
|
+
request(:get, "/v1/news/articles/#{article_id}/likes", options)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.create(article_id, options = {})
|
10
|
+
request(:put, "/v1/news/articles/#{article_id}/like", options)
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.delete(article_id, options = {})
|
14
|
+
request(:delete, "/v1/news/articles/#{article_id}/like", options)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module XingApi
|
2
|
+
module News
|
3
|
+
class Page < XingApi::Base
|
4
|
+
def self.find(page_id, options = {})
|
5
|
+
request(:get, "/v1/news/pages/#{page_id}", options)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.list_editable(options = {})
|
9
|
+
request(:get, '/v1/users/me/news/pages/editable', options)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.list_following(options = {})
|
13
|
+
request(:get, '/v1/users/me/news/pages/following', options)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module XingApi
|
2
|
+
module News
|
3
|
+
class Page
|
4
|
+
class Article < XingApi::Base
|
5
|
+
def self.create(page_id, source_url, title, options = {})
|
6
|
+
request(:post, "/v1/news/pages/#{page_id}/articles", { source_url: source_url, title: title }.merge(options))
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.list(page_id, options = {})
|
10
|
+
request(:get, "/v1/news/pages/#{page_id}/articles", options)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -11,12 +11,12 @@ module XingApi
|
|
11
11
|
NONCE_MISSING
|
12
12
|
INVALID_OAUTH_VERSION
|
13
13
|
REQUIRED_PARAMETER_MISSING
|
14
|
-
)
|
14
|
+
).freeze
|
15
15
|
|
16
16
|
def handle(response)
|
17
17
|
return {} if response.code.to_i == 204
|
18
18
|
|
19
|
-
unless (200..299).
|
19
|
+
unless (200..299).cover?(response.code.to_i)
|
20
20
|
raise_failed_response!(response)
|
21
21
|
end
|
22
22
|
|
@@ -32,7 +32,7 @@ module XingApi
|
|
32
32
|
body = parse_json(response)
|
33
33
|
error_class = failed_response_for(status_code, body[:error_name])
|
34
34
|
|
35
|
-
|
35
|
+
raise error_class.new(status_code, body[:error_name], body[:message], body[:errors])
|
36
36
|
end
|
37
37
|
|
38
38
|
def failed_response_for(status_code, error_name)
|
data/lib/xing_api/user.rb
CHANGED
@@ -32,10 +32,6 @@ module XingApi
|
|
32
32
|
request(:get, '/v1/users/find_by_emails', { emails: emails }.merge(options))
|
33
33
|
end
|
34
34
|
|
35
|
-
def self.groups(user_id, options = {})
|
36
|
-
request(:get, "/v1/users/#{user_id}/groups", options)
|
37
|
-
end
|
38
|
-
|
39
35
|
def self.status_message(message, options = {})
|
40
36
|
request(:post, '/v1/users/me/status_message', { message: message }.merge(options))
|
41
37
|
end
|
data/lib/xing_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xing_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.5'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Schmidt
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-08-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oauth
|
@@ -106,8 +106,19 @@ files:
|
|
106
106
|
- lib/xing_api/conversation/message.rb
|
107
107
|
- lib/xing_api/error.rb
|
108
108
|
- lib/xing_api/group.rb
|
109
|
+
- lib/xing_api/group/forum.rb
|
110
|
+
- lib/xing_api/group/forum/post.rb
|
111
|
+
- lib/xing_api/group/media_preview.rb
|
112
|
+
- lib/xing_api/group/post.rb
|
113
|
+
- lib/xing_api/group/post/comment.rb
|
114
|
+
- lib/xing_api/group/post/comment/like.rb
|
115
|
+
- lib/xing_api/group/post/like.rb
|
109
116
|
- lib/xing_api/invite.rb
|
110
117
|
- lib/xing_api/job.rb
|
118
|
+
- lib/xing_api/news/article.rb
|
119
|
+
- lib/xing_api/news/article/like.rb
|
120
|
+
- lib/xing_api/news/page.rb
|
121
|
+
- lib/xing_api/news/page/article.rb
|
111
122
|
- lib/xing_api/profile_message.rb
|
112
123
|
- lib/xing_api/profile_visit.rb
|
113
124
|
- lib/xing_api/response_handler.rb
|
@@ -143,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
154
|
version: 1.3.5
|
144
155
|
requirements: []
|
145
156
|
rubyforge_project:
|
146
|
-
rubygems_version: 2.
|
157
|
+
rubygems_version: 2.5.1
|
147
158
|
signing_key:
|
148
159
|
specification_version: 4
|
149
160
|
summary: Official Ruby wrapper for the XING API
|