slack-api-wrapper 0.0.2 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c18b521343ae2907134d7af29d23616e0990ec2
4
- data.tar.gz: a8fc73773601ce072195cf08bde1bf0247b7e3db
3
+ metadata.gz: 82f17a8e6d648e7e04b4e738de427049fb6c80c0
4
+ data.tar.gz: 13a7ebe3f6728d354dad95647164ad92456b135c
5
5
  SHA512:
6
- metadata.gz: 1b4e7a04162651cbf861fd47928ce96735666cb5f942b2d51d3f103f6d948c8e2871606e37e0f758c4bba02617a100aaa4766c26922514262bcbeb5ec402fd57
7
- data.tar.gz: d667a8f1236fa4cf4bb5c337c1a8a0ae460e11741b48fa1020bdc9f9f03b6bcf796e16a37bf513080469a5e60b7e54ef166a22e37f77cdf2c4d128a7004337fc
6
+ metadata.gz: 1130982045e83c3cd01862e94bd4b79b5535f0c6691de714407e4b5002b83a853b67a2044360059e938e63d64d72ef5fe31dcce5cd94b4e3b77b44e3830b22bc
7
+ data.tar.gz: d6d2f26145bae90283bb9c96dffbc9f22949362f1e49ddd6e3ade5e149290510fa26449ecb7cab48fbdf8b22537afc3eac8c3ecb452b39320a866b89ab710ac3
data/.gitignore CHANGED
@@ -20,3 +20,11 @@ tmp
20
20
  *.o
21
21
  *.a
22
22
  mkmf.log
23
+
24
+
25
+ # Idea
26
+ .idea
27
+ .idea/**/*
28
+
29
+ .ruby-gemset
30
+ .ruby-version
@@ -49,7 +49,7 @@ module Slack # :nodoc:
49
49
  # and parses them. It also checks for errors and raises exceptions with the appropriate messages.
50
50
  def self.parse_response(response, raw=false) # :nodoc:
51
51
  if response.kind_of?(Net::HTTPServerError)
52
- raise Slack.new("Slack Server Error: #{response} - #{response.body}", response)
52
+ raise SlackError.new("Slack Server Error: #{response} - #{response.body}", response)
53
53
  elsif response.kind_of?(Net::HTTPUnauthorized)
54
54
  raise SlackAuthError.new("User is not authenticated.", response)
55
55
  elsif !response.kind_of?(Net::HTTPSuccess)
@@ -58,10 +58,8 @@ module Slack # :nodoc:
58
58
  rescue
59
59
  raise SlackError.new("Slack Server Error: body=#{response.body}", response)
60
60
  end
61
- if d['error']
62
- raise SlackError.new(d['error'], response)
63
- else
64
- raise SlackError.new(response.body, response)
61
+ unless d['ok'] == true
62
+ raise SlackError.new(d['ok'], response)
65
63
  end
66
64
  end
67
65
 
data/lib/slack/client.rb CHANGED
@@ -3,12 +3,12 @@ require_relative 'web'
3
3
 
4
4
  module Slack
5
5
  # Use this class to make Slack API calls. You'll need to obtain an OAuth 2 access token
6
- # first; you can get one using either SlackOAuth2Flow.
6
+ # first; you can get one using SlackOAuth2Flow.
7
7
  class Client
8
8
  include Web
9
9
 
10
10
  # Args:
11
- # * +oauth2_access_token+: Obtained via Slack::OAuth2::Flow or Slack::OAuth2::FlowNoRedirect.
11
+ # * +oauth2_access_token+: Obtained via Slack::OAuth2::Flow.
12
12
  def initialize(oauth2_access_token)
13
13
  if oauth2_access_token.is_a?(String)
14
14
  @session = OAuth2Session.new(oauth2_access_token)
@@ -80,11 +80,11 @@ module Slack
80
80
 
81
81
  error = query_params['error']
82
82
 
83
- unless (error.nil? || code.nil?)
83
+ unless error.nil? || code.nil?
84
84
  raise BadRequestError.new("Query parameters 'code' and 'error' are both set;" +
85
85
  " only one must be set.")
86
86
  end
87
- if error.nil? and code.nil?
87
+ if error.nil? && code.nil?
88
88
  raise BadRequestError.new("Neither query parameter 'code' or 'error' is set.")
89
89
  end
90
90
 
data/lib/slack/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Slack
2
- VERSION = "0.0.2"
2
+ VERSION = '0.0.5'
3
3
  end
data/lib/slack/web.rb CHANGED
@@ -7,6 +7,7 @@ require_relative 'web/groups'
7
7
  require_relative 'web/im'
8
8
  require_relative 'web/search'
9
9
  require_relative 'web/stars'
10
+ require_relative 'web/team'
10
11
  require_relative 'web/users'
11
12
  require_relative 'error'
12
13
 
@@ -21,8 +22,8 @@ module Slack
21
22
  include Im
22
23
  include Stars
23
24
  include Search
25
+ include Team
24
26
  include Users
25
27
 
26
- class NotImplementedError < Exception; end
27
28
  end
28
29
  end
@@ -0,0 +1,14 @@
1
+ module Slack
2
+ module Web
3
+ module Team
4
+ SCOPE = "api"
5
+
6
+ # Checks API calling code.
7
+ def api_test(params={})
8
+ response = @session.do_get "#{SCOPE}.test", params
9
+ Slack::parse_response(response)
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -1,8 +1,8 @@
1
1
  module Slack
2
2
  module Web
3
3
  module Auth
4
- def auth_test
5
- response = @session.do_get "auth.test"
4
+ def auth_test(params={})
5
+ response = @session.do_get "auth.test", params
6
6
  Slack::parse_response(response)
7
7
  end
8
8
  end
@@ -4,77 +4,106 @@ module Slack
4
4
  SCOPE = "channels"
5
5
 
6
6
  # Archives a channel.
7
- def channels_archive(channel)
8
- response = @session.do_get "#{SCOPE}.archive", "channel" => channel
7
+ def channels_archive(params = {})
8
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
9
+ response = @session.do_get "#{SCOPE}.archive", params
9
10
  Slack::parse_response(response)
10
11
  end
11
12
 
12
13
  # Creates a channel.
13
- def channels_create(name)
14
- response = @session.do_get "#{SCOPE}.create", "name" => name
14
+ def channels_create(params = {})
15
+ throw ArgumentError.new("Required arguments :name missing") if params['name'].nil?
16
+ response = @session.do_get "#{SCOPE}.create", params
15
17
  Slack::parse_response(response)
16
18
  end
17
19
 
18
20
  # Fetches history of messages and events from a channel.
19
- def channels_history(channel, latest, oldest, inclusive, count)
20
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
21
+ def channels_history(params={})
22
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
23
+ response = @session.do_get "#{SCOPE}.history", params
24
+ Slack::parse_response(response)
21
25
  end
22
26
 
23
27
  # Gets information about a channel.
24
- def channels_info(channel)
25
- response = @session.do_get "#{SCOPE}.info", "channel" => channel
28
+ def channels_info(params={})
29
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
30
+ response = @session.do_get "#{SCOPE}.info", params
26
31
  Slack::parse_response(response)
27
32
  end
28
33
 
29
34
  # Invites a user to a channel.
30
- def channels_invite(channel, user)
31
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
35
+ def channels_invite(params={})
36
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
37
+ throw ArgumentError.new("Required arguments :user missing") if params['user'].nil?
38
+ response = @session.do_get "#{SCOPE}.invite", params
39
+ Slack::parse_response(response)
32
40
  end
33
41
 
34
42
  # Joins a channel, creating it if needed.
35
- def channels_join(name)
36
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
43
+ def channels_join(params={})
44
+ throw ArgumentError.new("Required arguments :name missing") if params['name'].nil?
45
+ response = @session.do_get "#{SCOPE}.join", params
46
+ Slack::parse_response(response)
37
47
  end
38
48
 
39
49
  # Removes a user from a channel.
40
- def channels_kick(channel, user)
41
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
50
+ def channels_kick(params={})
51
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
52
+ throw ArgumentError.new("Required arguments :user missing") if params['user'].nil?
53
+ response = @session.do_get "#{SCOPE}.kick", params
54
+ Slack::parse_response(response)
42
55
  end
43
56
 
44
57
  # Leaves a channel.
45
- def channels_leave(channel)
46
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
58
+ def channels_leave(params={})
59
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
60
+ response = @session.do_get "#{SCOPE}.leave", params
61
+ Slack::parse_response(response)
47
62
  end
48
63
 
49
64
  # Lists all channels in a Slack team.
50
- def channels_list(exclude_archived=0)
51
- response = @session.do_get "#{SCOPE}.list", "exclude_archived" => exclude_archived
65
+ def channels_list(params={})
66
+ response = @session.do_get "#{SCOPE}.list", params
52
67
  Slack::parse_response(response)
53
68
  end
54
69
 
55
70
  # Sets the read cursor in a channel.
56
- def channels_mark(channel, ts)
57
- raise Slack::Error("Not yet implemented, feel free to make a pull request")
71
+ def channels_mark(params={})
72
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
73
+ throw ArgumentError.new("Required arguments :ts missing") if params['ts'].nil?
74
+ response = @session.do_get "#{SCOPE}.mark", params
75
+ Slack::parse_response(response)
58
76
  end
59
77
 
60
78
  # Renames a channel.
61
- def channels_rename(channel, name)
62
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
79
+ def channels_rename(params={})
80
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
81
+ throw ArgumentError.new("Required arguments :name missing") if params['name'].nil?
82
+ response = @session.do_get "#{SCOPE}.rename", params
83
+ Slack::parse_response(response)
63
84
  end
64
85
 
65
86
  # Sets the purpose for a channel.
66
- def channels_set_purpose(channel, purpose)
67
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
87
+ def channels_set_purpose(params={})
88
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
89
+ throw ArgumentError.new("Required arguments :purpose missing") if params['purpose'].nil?
90
+ response = @session.do_get "#{SCOPE}.setPurpose", params
91
+ Slack::parse_response(response)
68
92
  end
69
93
 
70
94
  # Sets the topic for a channel.
71
- def channels_set_topic(channel, topic)
72
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
95
+ def channels_set_topic(params={})
96
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
97
+ throw ArgumentError.new("Required arguments :topic missing") if params['topic'].nil?
98
+ response = @session.do_get "#{SCOPE}.setTopic", params
99
+ Slack::parse_response(response)
73
100
  end
74
101
 
75
102
  # Unarchives a channel.
76
- def channels_unarchive(channel)
77
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
103
+ def channels_unarchive(params={})
104
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
105
+ response = @session.do_get "#{SCOPE}.unarchive", params
106
+ Slack::parse_response(response)
78
107
  end
79
108
 
80
109
  end
@@ -4,38 +4,27 @@ module Slack
4
4
  SCOPE = "chat"
5
5
 
6
6
  # Deletes a message.
7
- def chat_delete(ts, channel)
8
- param = {
9
- "ts" => ts,
10
- "channel" => channel
11
- }
12
- response = @session.do_get "#{SCOPE}.delete", param
7
+ def chat_delete(params = {})
8
+ throw ArgumentError.new("Required arguments :ts missing") if params['ts'].nil?
9
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
10
+ response = @session.do_get "#{SCOPE}.delete", params
13
11
  Slack::parse_response(response)
14
12
  end
15
13
 
16
14
  # Sends a message to a channel.
17
- def chat_post_message(channel, text, username, as_user= false, parse, link_names, attachments)
18
- param = {
19
- "channel" => channel,
20
- "text" => text,
21
- "username" => username,
22
- "as_user" => as_user,
23
- "parse" => parse,
24
- "link_names" => link_names,
25
- "attachments" => attachments
26
- }
27
- response = @session.do_get "#{SCOPE}.postMessage", param
15
+ def chat_post_message(params = {})
16
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
17
+ throw ArgumentError.new("Required arguments :text missing") if params['text'].nil?
18
+ response = @session.do_get "#{SCOPE}.postMessage", params
28
19
  Slack::parse_response(response)
29
20
  end
30
21
 
31
22
  # Updates a message.
32
- def chat_update(ts, channel, text)
33
- param = {
34
- "ts" => ts,
35
- "channel" => channel,
36
- "text" => text
37
- }
38
- response = @session.do_get "#{SCOPE}.update", param
23
+ def chat_update(params = {})
24
+ throw ArgumentError.new("Required arguments :ts missing") if params['ts'].nil?
25
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
26
+ throw ArgumentError.new("Required arguments :text missing") if params['text'].nil?
27
+ response = @session.do_get "#{SCOPE}.update", params
39
28
  Slack::parse_response(response)
40
29
  end
41
30
 
@@ -4,8 +4,8 @@ module Slack
4
4
  SCOPE = "emoji"
5
5
 
6
6
  # Lists custom emoji for a team.
7
- def emoji_list
8
- response = @session.do_get "#{SCOPE}.list"
7
+ def emoji_list(params={})
8
+ response = @session.do_get "#{SCOPE}.list", params
9
9
  Slack::parse_response(response)
10
10
  end
11
11
  end
@@ -4,48 +4,28 @@ module Slack
4
4
  SCOPE = "files"
5
5
 
6
6
  #Deletes a file.
7
- def files_delete(file)
8
- response = @session.do_get "#{SCOPE}.delete", "file" => file
7
+ def files_delete(params={})
8
+ throw ArgumentError.new("Required arguments :file missing") if params['file'].nil?
9
+ response = @session.do_get "#{SCOPE}.delete", params
9
10
  Slack::parse_response(response)
10
11
  end
11
12
 
12
13
  # Gets information about a team file.
13
- def files_info(file, count=100, page=1)
14
- param = {
15
- "file" => file,
16
- "count" => count,
17
- "page" => page
18
- }
19
- response = @session.do_get "#{SCOPE}.info", param
14
+ def files_info(params={})
15
+ throw ArgumentError.new("Required arguments :file missing") if params['file'].nil
16
+ response = @session.do_get "#{SCOPE}.info", params
20
17
  Slack::parse_response(response)
21
18
  end
22
19
 
23
20
  # Lists & filters team files.
24
- def files_list(user, ts_from=0, ts_to=Time.now, types="all", count=100, page=1)
25
- param = {
26
- "user" => user,
27
- "ts_from" => ts_from,
28
- "ts_to" => ts_to,
29
- "types" => types,
30
- "count" => count,
31
- "page" => page
32
- }
33
- response = @session.do_get "#{SCOPE}.list", param
21
+ def files_list(params={})
22
+ response = @session.do_get "#{SCOPE}.list", params
34
23
  Slack::parse_response(response)
35
24
  end
36
25
 
37
26
  # Uploads or creates a file.
38
- def files_upload(file, content, filetype, filename, title, initial_comment, channels)
39
- param = {
40
- "file" => file,
41
- "content" => content,
42
- "filetype" => filetype,
43
- "filename" => filename,
44
- "title" => title,
45
- "initial_comment" => initial_comment,
46
- "channels" => channels
47
- }
48
- response = @session.do_get "#{SCOPE}.upload", param
27
+ def files_upload(params={})
28
+ response = @session.do_get "#{SCOPE}.upload", params
49
29
  Slack::parse_response(response)
50
30
  end
51
31
  end
@@ -4,83 +4,113 @@ module Slack
4
4
  SCOPE = "groups"
5
5
 
6
6
  # Archives a private group.
7
- def groups_archive(channel)
8
- response = @session.do_get "#{SCOPE}.archive", "channel" => channel
7
+ def groups_archive(params={})
8
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
9
+ response = @session.do_get "#{SCOPE}.archive", params
9
10
  Slack::parse_response(response)
10
11
  end
11
12
 
12
13
  # Closes a private group.
13
- def groups_close(channel)
14
- response = @session.do_get "#{SCOPE}.close", "channel" => channel
14
+ def groups_close(params={})
15
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
16
+ response = @session.do_get "#{SCOPE}.close", params
15
17
  Slack::parse_response(response)
16
18
  end
17
19
 
18
20
  # Creates a private group.
19
- def groups_create(name)
20
- response = @session.do_get "#{SCOPE}.create", "name" => name
21
+ def groups_create(params={})
22
+ throw ArgumentError.new("Required arguments :name missing") if params['name'].nil?
23
+ response = @session.do_get "#{SCOPE}.create", params
21
24
  Slack::parse_response(response)
22
25
  end
23
26
 
24
27
  # Clones and archives a private group.
25
- def groups_create_child(channel)
26
- response = @session.do_get "#{SCOPE}.createChild", "channel" => channel
28
+ def groups_create_child(params={})
29
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
30
+ response = @session.do_get "#{SCOPE}.createChild", params
27
31
  Slack::parse_response(response)
28
32
  end
29
33
 
30
34
  # Fetches history of messages and events from a private group.
31
- def groups_history(channel, latest, oldest, inclusive, count)
32
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
35
+ def groups_history(params={})
36
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
37
+ response = @session.do_get "#{SCOPE}.history", params
38
+ Slack::parse_response(response)
33
39
  end
34
40
 
35
41
  # Invites a user to a private group.
36
- def groups_invite(channel, user)
37
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
42
+ def groups_invite(params={})
43
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
44
+ throw ArgumentError.new("Required arguments :user missing") if params['user'].nil?
45
+ response = @session.do_get "#{SCOPE}.invite", params
46
+ Slack::parse_response(response)
38
47
  end
39
48
 
40
49
  # Removes a user from a private group.
41
- def groups_kick(channel, user)
42
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
50
+ def groups_kick(params={})
51
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
52
+ throw ArgumentError.new("Required arguments :user missing") if params['user'].nil?
53
+ response = @session.do_get "#{SCOPE}.kick", params
54
+ Slack::parse_response(response)
43
55
  end
44
56
 
45
57
  # Leaves a private group.
46
- def groups_leave(channel)
47
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
58
+ def groups_leave(params={})
59
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
60
+ response = @session.do_get "#{SCOPE}.leave", params
61
+ Slack::parse_response(response)
48
62
  end
49
63
 
50
64
  # Lists private groups that the calling user has access to..
51
- def groups_list(exclude_archived=0)
52
- response = @session.do_get "#{SCOPE}.list", "exclude_archived" => exclude_archived
65
+ def groups_list(params={})
66
+ response = @session.do_get "#{SCOPE}.list", params
53
67
  Slack::parse_response(response)
54
68
  end
55
69
 
56
70
  # Sets the read cursor in a private group.
57
- def groups_mark(channel, ts)
58
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
71
+ def groups_mark(params={})
72
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
73
+ throw ArgumentError.new("Required arguments :ts missing") if params['ts'].nil?
74
+ response = @session.do_get "#{SCOPE}.mark", params
75
+ Slack::parse_response(response)
59
76
  end
60
77
 
61
78
  # Opens a private group.
62
- def groups_open(channel)
63
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
79
+ def groups_open(params={})
80
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
81
+ response = @session.do_get "#{SCOPE}.open", params
82
+ Slack::parse_response(response)
64
83
  end
65
84
 
66
85
  # Renames a private group.
67
- def groups_rename(channel, name)
68
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
86
+ def groups_rename(params={})
87
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
88
+ throw ArgumentError.new("Required arguments :name missing") if params['name'].nil?
89
+ response = @session.do_get "#{SCOPE}.rename", params
90
+ Slack::parse_response(response)
69
91
  end
70
92
 
71
93
  # Sets the purpose for a private group.
72
- def groups_set_purpose(channel, purpose)
73
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
94
+ def groups_set_purpose(params={})
95
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
96
+ throw ArgumentError.new("Required arguments :pupose missing") if params['purpos'].nil?
97
+ response = @session.do_get "#{SCOPE}.setPurpose", params
98
+ Slack::parse_response(response)
74
99
  end
75
100
 
76
101
  # Sets the topic for a private group.
77
- def groups_set_topic(channel, topic)
78
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
102
+ def groups_set_topic(params={})
103
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
104
+ throw ArgumentError.new("Required arguments :topic missing") if params['topic'].nil?
105
+ response = @session.do_get "#{SCOPE}.setTopic", params
106
+ Slack::parse_response(response)
79
107
  end
80
108
 
81
109
  # Unarchives a private group.
82
- def groups_unarchive(channel)
83
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
110
+ def groups_unarchive(params={})
111
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
112
+ response = @session.do_get "#{SCOPE}.unarchive", params
113
+ Slack::parse_response(response)
84
114
  end
85
115
 
86
116
  end
data/lib/slack/web/im.rb CHANGED
@@ -4,29 +4,38 @@ module Slack
4
4
  SCOPE = "im"
5
5
 
6
6
  # Close a direct message channel.
7
- def im_close(channel)
8
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
7
+ def im_close(params={})
8
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
9
+ response = @session.do_get "#{SCOPE}.close", params
10
+ Slack::parse_response(response)
9
11
  end
10
12
 
11
13
  # Fetches history of messages and events from direct message channel.
12
- def im_history(channel, latest, oldest, inclusive, count)
13
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
14
+ def im_history(params={})
15
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
16
+ response = @session.do_get "#{SCOPE}.history", params
17
+ Slack::parse_response(response)
14
18
  end
15
19
 
16
20
  # Lists direct message channels for the calling user.
17
- def im_list
18
- response = @session.do_get "#{SCOPE}.list"
21
+ def im_list(params={})
22
+ response = @session.do_get "#{SCOPE}.list", params
19
23
  Slack::parse_response(response)
20
24
  end
21
25
 
22
26
  # Sets the read cursor in a direct message channel.
23
- def im_mark(channel, ts)
24
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
27
+ def im_mark(params={})
28
+ throw ArgumentError.new("Required arguments :channel missing") if params['channel'].nil?
29
+ throw ArgumentError.new("Required arguments :ts missing") if params['ts'].nil?
30
+ response = @session.do_get "#{SCOPE}.mark", params
31
+ Slack::parse_response(response)
25
32
  end
26
33
 
27
34
  # Opens a direct message channel.
28
- def im_open(user)
29
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
35
+ def im_open(params={})
36
+ throw ArgumentError.new("Required arguments :user missing") if params['user'].nil?
37
+ response = @session.do_get "#{SCOPE}.open", params
38
+ Slack::parse_response(response)
30
39
  end
31
40
 
32
41
  end
@@ -4,18 +4,24 @@ module Slack
4
4
  SCOPE = "search"
5
5
 
6
6
  # Searches for messages and files matching a query.
7
- def search_all(query, sort, sort_dir, highlight, count, page)
8
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
7
+ def search_all(params={})
8
+ throw ArgumentError.new("Required arguments :query missing") if params['query'].nil?
9
+ response = @session.do_get "#{SCOPE}.all", params
10
+ Slack::parse_response(response)
9
11
  end
10
12
 
11
13
  # Searches for files matching a query.
12
- def search_files(query, sort, sort_dir, highlight, count, page)
13
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
14
+ def search_files(params={})
15
+ throw ArgumentError.new("Required arguments :query missing") if params['query'].nil?
16
+ response = @session.do_get "#{SCOPE}.files", params
17
+ Slack::parse_response(response)
14
18
  end
15
19
 
16
20
  # Searches for messages matching a query.
17
- def search_messages(query, sort, sort_dir, highlight, count, page)
18
- raise NotImplementedError.new("Not yet implemented, feel free to make a pull request")
21
+ def search_messages(params={})
22
+ throw ArgumentError.new("Required arguments :query missing") if params['query'].nil?
23
+ response = @session.do_get "#{SCOPE}.messages", params
24
+ Slack::parse_response(response)
19
25
  end
20
26
 
21
27
  end
@@ -1,11 +1,12 @@
1
1
  module Slack
2
2
  module Web
3
3
  module Stars
4
- SCOPE = "users"
4
+ SCOPE = "stars"
5
5
 
6
6
  # Lists stars for a user.
7
- def stars_list(user, count, page)
8
- raise Slack::Error("Not yet implemented, feel free to make a pull request")
7
+ def stars_list(params={})
8
+ response = @session.do_get "#{SCOPE}.list", params
9
+ Slack::parse_response(response)
9
10
  end
10
11
 
11
12
  end
@@ -0,0 +1,14 @@
1
+ module Slack
2
+ module Web
3
+ module Team
4
+ SCOPE = "team"
5
+
6
+ # Gets the access logs for a team.
7
+ def team_access_logs(params={})
8
+ response = @session.do_get "#{SCOPE}.accessLogs", params
9
+ Slack::parse_response(response)
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -4,32 +4,35 @@ module Slack
4
4
  SCOPE = "users"
5
5
 
6
6
  # Gets user presence information.
7
- def users_get_presence(user)
8
- response = @session.do_get "#{SCOPE}.getPresence", "user" => user
7
+ def users_get_presence(params={})
8
+ throw ArgumentError.new("Required arguments :user missing") if params['user'].nil?
9
+ response = @session.do_get "#{SCOPE}.getPresence", params
9
10
  Slack::parse_response(response)
10
11
  end
11
12
 
12
13
  # Gets information about a user.
13
- def users_info(user)
14
- response = @session.do_get "#{SCOPE}.info", "user" => user
14
+ def users_info(params={})
15
+ throw ArgumentError.new("Required arguments :user missing") if params['user'].nil?
16
+ response = @session.do_get "#{SCOPE}.info", params
15
17
  Slack::parse_response(response)
16
18
  end
17
19
 
18
20
  # Lists all users in a Slack team.
19
- def users_list
20
- response = @session.do_get "#{SCOPE}.list"
21
+ def users_list(params={})
22
+ response = @session.do_get "#{SCOPE}.list", params
21
23
  Slack::parse_response(response)
22
24
  end
23
25
 
24
26
  # Marks a user as active.
25
- def users_set_active
26
- response = @session.do_get "#{SCOPE}.setActive"
27
+ def users_set_active(params={})
28
+ response = @session.do_get "#{SCOPE}.setActive", params
27
29
  Slack::parse_response(response)
28
30
  end
29
31
 
30
32
  # Manually sets user presence.
31
- def users_set_presence(presence)
32
- response = @session.do_get "#{SCOPE}.setPresence", "presence" => presence
33
+ def users_set_presence(params={})
34
+ throw ArgumentError.new("Required arguments :presence missing") if params['presence'].nil?
35
+ response = @session.do_get "#{SCOPE}.setPresence", params
33
36
  Slack::parse_response(response)
34
37
  end
35
38
 
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  A library that provides a plain function-call interface to the
14
14
  Slack API web endpoints.
15
15
  EOF
16
- spec.homepage = ""
16
+ spec.homepage = "https://github.com/gssbzn/slack-api-wrapper"
17
17
  spec.license = "MIT"
18
18
 
19
19
  spec.files = `git ls-files -z`.split("\x0")
@@ -8,8 +8,5 @@ describe Slack::Client do
8
8
  it 'Validates token is string' do
9
9
  expect{Slack::Client.new(1)}.to raise_error(ArgumentError)
10
10
  end
11
- it 'Validates unimplemented methods' do
12
- client = Slack::Client.new("")
13
- expect{client.groups_open("")}.to raise_error(Slack::Web::NotImplementedError)
14
- end
11
+
15
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack-api-wrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gustavo Bazan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-02 00:00:00.000000000 Z
11
+ date: 2015-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -83,6 +83,7 @@ files:
83
83
  - lib/slack/session.rb
84
84
  - lib/slack/version.rb
85
85
  - lib/slack/web.rb
86
+ - lib/slack/web/api.rb
86
87
  - lib/slack/web/auth.rb
87
88
  - lib/slack/web/channels.rb
88
89
  - lib/slack/web/chat.rb
@@ -92,6 +93,7 @@ files:
92
93
  - lib/slack/web/im.rb
93
94
  - lib/slack/web/search.rb
94
95
  - lib/slack/web/stars.rb
96
+ - lib/slack/web/team.rb
95
97
  - lib/slack/web/users.rb
96
98
  - slack-api-wrapper.gemspec
97
99
  - spec/slack/client_spec.rb
@@ -100,7 +102,7 @@ files:
100
102
  - spec/slack/oauth2_spec.rb
101
103
  - spec/slack_spec.rb
102
104
  - spec/spec_helper.rb
103
- homepage: ''
105
+ homepage: https://github.com/gssbzn/slack-api-wrapper
104
106
  licenses:
105
107
  - MIT
106
108
  metadata: {}
@@ -120,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
122
  version: '0'
121
123
  requirements: []
122
124
  rubyforge_project:
123
- rubygems_version: 2.4.4
125
+ rubygems_version: 2.4.6
124
126
  signing_key:
125
127
  specification_version: 4
126
128
  summary: Slack API Wrapper