added dm channel support.

This commit is contained in:
5elenay 2021-08-28 18:38:26 +03:00
parent a2e5584d93
commit 10de8762c7
4 changed files with 47 additions and 61 deletions

@ -143,12 +143,7 @@ func (c Channel) FetchMessage(id string) (*Message, error) {
}
err = json.Unmarshal(resp, msg)
if err != nil {
return msg, err
}
return msg, nil
return msg, err
}
// Edit channel.
@ -160,23 +155,13 @@ func (c Channel) Edit(ec *EditChannel) error {
}
_, err = c.Client.Request("PATCH", "/channels/"+c.Id, data)
if err != nil {
return err
}
return nil
return err
}
// Delete channel.
func (c Channel) Delete() error {
_, err := c.Client.Request("DELETE", "/channels/"+c.Id, []byte{})
if err != nil {
return err
}
return nil
return err
}
// Create a new invite.
@ -193,12 +178,7 @@ func (c Channel) CreateInvite() (string, error) {
}{}
err = json.Unmarshal(data, dataStruct)
if err != nil {
return dataStruct.InviteCode, err
}
return dataStruct.InviteCode, nil
return dataStruct.InviteCode, err
}
// Set channel permissions for a role.
@ -209,10 +189,5 @@ func (c Channel) SetPermissions(role_id string, permissions uint) error {
}
_, err := c.Client.Request("PUT", "/channels/"+c.Id+"/permissions/"+role_id, []byte(fmt.Sprintf("{\"permissions\":%d}", permissions)))
if err != nil {
return err
}
return nil
return err
}

@ -125,11 +125,7 @@ func (c *Client) FetchChannel(id string) (*Channel, error) {
}
err = json.Unmarshal(data, channel)
if err != nil {
return channel, err
}
return channel, nil
return channel, err
}
// Fetch an user by Id.
@ -144,12 +140,7 @@ func (c *Client) FetchUser(id string) (*User, error) {
}
err = json.Unmarshal(data, user)
if err != nil {
return user, err
}
return user, nil
return user, err
}
// Fetch a server by Id.
@ -164,12 +155,7 @@ func (c *Client) FetchServer(id string) (*Server, error) {
}
err = json.Unmarshal(data, server)
if err != nil {
return server, err
}
return server, nil
return server, err
}
// Create a server.
@ -184,12 +170,7 @@ func (c *Client) CreateServer(name, description string) (*Server, error) {
}
err = json.Unmarshal(data, server)
if err != nil {
return server, err
}
return server, nil
return server, err
}
// Auth client user.
@ -205,12 +186,31 @@ func (c *Client) Auth() error {
}
err = json.Unmarshal(resp, c.SelfBot)
return err
}
// Fetch all of the DMs.
func (c *Client) FetchDirectMessages() ([]*Channel, error) {
var dmChannels []*Channel
resp, err := c.Request("GET", "/users/dms", []byte{})
if err != nil {
return err
return dmChannels, err
}
return nil
err = json.Unmarshal(resp, &dmChannels)
if err != nil {
return dmChannels, err
}
// Prepare channels.
for _, i := range dmChannels {
i.Client = c
}
return dmChannels, nil
}
// Get a channel from cache by Id.

@ -108,12 +108,7 @@ func (m *Message) Edit(content string) error {
// Delete the message.
func (m Message) Delete() error {
_, err := m.Client.Request("DELETE", "/channels/"+m.ChannelId+"/messages/"+m.Id, []byte{})
if err != nil {
return err
}
return nil
return err
}
// Reply to the message.

16
user.go

@ -1,6 +1,7 @@
package revoltgo
import (
"encoding/json"
"time"
"github.com/oklog/ulid/v2"
@ -56,3 +57,18 @@ func (u *User) CalculateCreationDate() error {
func (u User) FormatMention() string {
return "<@" + u.Id + ">"
}
// Create a DM with the user.
func (u User) CreateDirectMessage() (*Channel, error) {
dmChannel := &Channel{}
dmChannel.Client = u.Client
resp, err := u.Client.Request("GET", "/users/"+u.Id+"/dm", []byte{})
if err != nil {
return dmChannel, err
}
err = json.Unmarshal(resp, dmChannel)
return dmChannel, err
}