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

View File

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

View File

@ -125,11 +125,7 @@ func (c *Client) FetchChannel(id string) (*Channel, error) {
} }
err = json.Unmarshal(data, channel) err = json.Unmarshal(data, channel)
return channel, err
if err != nil {
return channel, err
}
return channel, nil
} }
// Fetch an user by Id. // Fetch an user by Id.
@ -144,12 +140,7 @@ func (c *Client) FetchUser(id string) (*User, error) {
} }
err = json.Unmarshal(data, user) err = json.Unmarshal(data, user)
return user, err
if err != nil {
return user, err
}
return user, nil
} }
// Fetch a server by Id. // Fetch a server by Id.
@ -164,12 +155,7 @@ func (c *Client) FetchServer(id string) (*Server, error) {
} }
err = json.Unmarshal(data, server) err = json.Unmarshal(data, server)
return server, err
if err != nil {
return server, err
}
return server, nil
} }
// Create a server. // Create a server.
@ -184,12 +170,7 @@ func (c *Client) CreateServer(name, description string) (*Server, error) {
} }
err = json.Unmarshal(data, server) err = json.Unmarshal(data, server)
return server, err
if err != nil {
return server, err
}
return server, nil
} }
// Auth client user. // Auth client user.
@ -205,12 +186,31 @@ func (c *Client) Auth() error {
} }
err = json.Unmarshal(resp, c.SelfBot) 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 { 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. // Get a channel from cache by Id.

View File

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

16
user.go
View File

@ -1,6 +1,7 @@
package revoltgo package revoltgo
import ( import (
"encoding/json"
"time" "time"
"github.com/oklog/ulid/v2" "github.com/oklog/ulid/v2"
@ -56,3 +57,18 @@ func (u *User) CalculateCreationDate() error {
func (u User) FormatMention() string { func (u User) FormatMention() string {
return "<@" + u.Id + ">" 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
}