discord_api 0.0.1 → 0.1.1

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
  SHA256:
3
- metadata.gz: 87a86b36af7da2e67a7cf1b5ba61abbb3cb3d44132c8b3d4ecc63871090d40a0
4
- data.tar.gz: aee120202417f73ddbcfba36568d15fe3146bd54776c2ee1e95ca4ca880544e8
3
+ metadata.gz: f5b44836b278c5d28cd0a2c6fe4009eae2957b0c6bc803fa9cfcc277b7eb794b
4
+ data.tar.gz: 6b7b1de20d49ba721cdd56409e06ce854973951d0dec7a1e38ca44046dd52da3
5
5
  SHA512:
6
- metadata.gz: 3b9df969d355386214e50684381f991aecdf1e71d02ffe90a0496b78a2d731b5e433ebfdf8cc136602e4e3214f182cd49744a087973736fb3ca2778c43f91e5a
7
- data.tar.gz: 0b04d785a62f2ce440077cb448898816028bd0cc52ecb0e0287306c0f4520b43f9053f6ed07175c29adaa6f347e95aa14f0d99c0acad9de42ef233501f270b4f
6
+ metadata.gz: 5f32b3a7c6103ceedf3455e10ee7ec02d89522b34031c5d8fe546bf31d02103e3afdbf422f9c5876a0d9735f5ae005876015b033e24e448826caa1e004950cb5
7
+ data.tar.gz: 3f14957f832318e5a7c590830fbc0e7ac7f45a32c1299db78d70d8f98a9e764f614410896f41bb5eaa5de6fac8ee2fc5891300b8efda6f8b6386bb8a3bf80f5f
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Discord API
2
2
 
3
- This is a Ruby wrapper for the Discord API. It is currently in development and is not ready for use.
3
+ This is a Ruby library for the Discord HTTP API. **Currently in development**
4
4
 
5
5
  ## Installation
6
6
 
@@ -28,5 +28,79 @@ Firstly you'll need to set either a user token or bot token. Some endpoints are
28
28
 
29
29
  ```ruby
30
30
  # Get the current user
31
+ # Required scope: identify
32
+ # Required scopes if you want the user's email: identify email
31
33
  @client.users.me
34
+
35
+ # Get the user's guilds
36
+ # Required scope: guilds
37
+ @client.users.guilds
38
+ ```
39
+
40
+ ### Channels
41
+
42
+ These endpoints are only accessible using a bot token.
43
+
44
+ ```ruby
45
+ # Retrieve a Channel
46
+ @client.channels.retrieve(id: 123123)
47
+
48
+ # Update a Channel's details
49
+ # https://discord.com/developers/docs/resources/channel#modify-channel
50
+ @client.channels.update(id: 123123, name: "new-channel-name")
51
+ ```
52
+
53
+ ### Messages
54
+
55
+ These endpoints are only accessible using a bot token.
56
+
57
+ ```ruby
58
+ # List messages for a channel
59
+ @client.messages.list(channel_id: 123123)
60
+
61
+ # Get a message
62
+ @client.messages.retrieve(channel_id: 123123, message_id: 123123)
63
+
64
+ # Create a message
65
+ # https://discord.com/developers/docs/resources/channel#create-message
66
+ @client.messages.create(channel_id: 123123, content: "Hello World")
67
+
68
+ # Update a message
69
+ # https://discord.com/developers/docs/resources/channel#edit-message
70
+ @client.messages.update(channel_id: 123123, message_id: 123123, content: "Hello World")
71
+
72
+ # Delete a message
73
+ @client.messages.delete(channel_id: 123123, message_id: 123123)
74
+
75
+ # Bulk delete messages
76
+ @client.messages.bulk_delete(channel_id: 123123, ids: [123123, 321321])
32
77
  ```
78
+
79
+ ### Guilds/Servers
80
+
81
+ These endpoints are only accessible using a bot token.
82
+
83
+ ```ruby
84
+ # Retrieve a Guild's details
85
+ @client.guilds.retrieve(id: 123123)
86
+
87
+ # Update a Guild's details
88
+ # https://discord.com/developers/docs/resources/guild#modify-guild
89
+ @client.guilds.update(id: 123123, name: "new-guild-name")
90
+
91
+ # Retrieve a list of a Guild's channels
92
+ @client.guilds.channels(guild: 123123)
93
+
94
+ # Create a Guild channel
95
+ # https://discord.com/developers/docs/resources/guild#create-guild-channel
96
+ @client.guilds.create_channel(guild: 123123, name: "new-channel-name")
97
+ ```
98
+
99
+ ## Contributing
100
+
101
+ Bug reports and pull requests are welcome on GitHub at https://github.com/deanpcmad/discord_api.
102
+
103
+ ## License
104
+
105
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
106
+
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ require "rake/testtask"
6
6
  Rake::TestTask.new(:test) do |t|
7
7
  t.libs << "test"
8
8
  t.libs << "lib"
9
- t.test_files = FileList["test/**/test_*.rb"]
9
+ t.test_files = FileList["test/**/*_test.rb"]
10
10
  end
11
11
 
12
12
  task default: :test
@@ -14,6 +14,18 @@ module Discord
14
14
  UsersResource.new(self)
15
15
  end
16
16
 
17
+ def guilds
18
+ GuildsResource.new(self)
19
+ end
20
+
21
+ def channels
22
+ ChannelsResource.new(self)
23
+ end
24
+
25
+ def messages
26
+ MessagesResource.new(self)
27
+ end
28
+
17
29
  def connection
18
30
  @connection ||= Faraday.new(BASE_URL) do |conn|
19
31
  if user_access_token
@@ -6,13 +6,13 @@ module Discord
6
6
  body = response.body
7
7
 
8
8
  new(
9
- data: body["data"].map { |attrs| type.new(attrs) },
10
- total: body["data"].count,
11
- cursor: body.dig("pagination", "cursor")
9
+ data: body.map { |attrs| type.new(attrs) },
10
+ total: body.count,
11
+ # cursor: body.dig("pagination", "cursor")
12
12
  )
13
13
  end
14
14
 
15
- def initialize(data:, total:, cursor:)
15
+ def initialize(data:, total:, cursor:nil)
16
16
  @data = data
17
17
  @total = total
18
18
  @cursor = cursor.nil? ? nil : cursor
@@ -0,0 +1,4 @@
1
+ module Discord
2
+ class Channel < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Discord
2
+ class Guild < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Discord
2
+ class Message < Object
3
+ end
4
+ end
@@ -0,0 +1,13 @@
1
+ module Discord
2
+ class ChannelsResource < Resource
3
+
4
+ def retrieve(id:)
5
+ Channel.new get_request("channels/#{id}").body
6
+ end
7
+
8
+ def update(id:, **params)
9
+ Channel.new patch_request("channels/#{id}", body: params).body
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,24 @@
1
+ module Discord
2
+ class GuildsResource < Resource
3
+
4
+ def retrieve(id:)
5
+ Guild.new get_request("guilds/#{id}").body
6
+ end
7
+
8
+ def update(id:, **params)
9
+ response = patch_request("guilds/#{id}", body: params)
10
+ Guild.new response.body
11
+ end
12
+
13
+ def channels(guild:)
14
+ response = get_request("guilds/#{guild}/channels")
15
+ Collection.from_response(response, type: Channel)
16
+ end
17
+
18
+ def create_channel(guild:, **params)
19
+ response = post_request("guilds/#{guild}/channels", body: params)
20
+ Channel.new response.body
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,32 @@
1
+ module Discord
2
+ class MessagesResource < Resource
3
+
4
+ def list(channel:, **params)
5
+ response = get_request("channels/#{channel}/messages", params: params)
6
+ Collection.from_response(response, type: Message)
7
+ end
8
+
9
+ def retrieve(channel:, message:)
10
+ Message.new get_request("channels/#{channel}/messages/#{message}").body
11
+ end
12
+
13
+ def create(channel:, **params)
14
+ response = post_request("channels/#{channel}/messages", body: params)
15
+ Message.new response.body
16
+ end
17
+
18
+ def update(channel:, id:, **params)
19
+ response = patch_request("channels/#{channel}/messages/#{id}", body: params)
20
+ Message.new response.body
21
+ end
22
+
23
+ def delete(channel:, id:)
24
+ delete_request("channels/#{channel}/messages/#{id}")
25
+ end
26
+
27
+ def bulk_delete(channel:, messages:)
28
+ post_request("channels/#{channel}/messages/bulk-delete", body: {messages: messages})
29
+ end
30
+
31
+ end
32
+ end
@@ -1,10 +1,14 @@
1
1
  module Discord
2
2
  class UsersResource < Resource
3
3
 
4
- # Get the currently authenticated user
5
4
  def me
6
5
  User.new get_request("users/@me").body
7
6
  end
8
7
 
8
+ def guilds
9
+ response = get_request("users/@me/guilds")
10
+ Collection.from_response(response, type: Guild)
11
+ end
12
+
9
13
  end
10
14
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Discord
4
- VERSION = "0.0.1"
4
+ VERSION = "0.1.1"
5
5
  end
data/lib/discord.rb CHANGED
@@ -11,7 +11,13 @@ module Discord
11
11
  autoload :Object, "discord/object"
12
12
 
13
13
  autoload :UsersResource, "discord/resources/users"
14
+ autoload :ChannelsResource, "discord/resources/channels"
15
+ autoload :MessagesResource, "discord/resources/messages"
16
+ autoload :GuildsResource, "discord/resources/guilds"
14
17
 
15
18
  autoload :User, "discord/objects/user"
19
+ autoload :Guild, "discord/objects/guild"
20
+ autoload :Channel, "discord/objects/channel"
21
+ autoload :Message, "discord/objects/message"
16
22
 
17
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: discord_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dean Perry
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-30 00:00:00.000000000 Z
11
+ date: 2023-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -41,16 +41,24 @@ files:
41
41
  - lib/discord/collection.rb
42
42
  - lib/discord/error.rb
43
43
  - lib/discord/object.rb
44
+ - lib/discord/objects/channel.rb
45
+ - lib/discord/objects/guild.rb
46
+ - lib/discord/objects/message.rb
44
47
  - lib/discord/objects/user.rb
45
48
  - lib/discord/resource.rb
49
+ - lib/discord/resources/channels.rb
50
+ - lib/discord/resources/guilds.rb
51
+ - lib/discord/resources/messages.rb
46
52
  - lib/discord/resources/users.rb
47
53
  - lib/discord/version.rb
48
54
  - lib/discord_api.rb
49
55
  - sig/discord/api.rbs
50
- homepage:
56
+ homepage: https://github.com/deanpcmad/discord_api
51
57
  licenses:
52
58
  - MIT
53
- metadata: {}
59
+ metadata:
60
+ homepage_uri: https://github.com/deanpcmad/discord_api
61
+ source_code_uri: https://github.com/deanpcmad/discord_api
54
62
  post_install_message:
55
63
  rdoc_options: []
56
64
  require_paths:
@@ -66,8 +74,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
74
  - !ruby/object:Gem::Version
67
75
  version: '0'
68
76
  requirements: []
69
- rubygems_version: 3.4.10
77
+ rubygems_version: 3.4.20
70
78
  signing_key:
71
79
  specification_version: 4
72
- summary: A Ruby wrapper for the Discord API
80
+ summary: Ruby library for the Discord HTTP API
73
81
  test_files: []