slack-api-wrapper 0.0.2 → 0.0.5

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.
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