added dm channel support.
This commit is contained in:
parent
a2e5584d93
commit
10de8762c7
25
channel.go
25
channel.go
@ -143,14 +143,9 @@ func (c Channel) FetchMessage(id string) (*Message, error) {
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, msg)
|
||||
|
||||
if err != nil {
|
||||
return msg, err
|
||||
}
|
||||
|
||||
return msg, nil
|
||||
}
|
||||
|
||||
// Edit channel.
|
||||
func (c Channel) Edit(ec *EditChannel) error {
|
||||
data, err := json.Marshal(ec)
|
||||
@ -160,25 +155,15 @@ func (c Channel) Edit(ec *EditChannel) error {
|
||||
}
|
||||
|
||||
_, err = c.Client.Request("PATCH", "/channels/"+c.Id, data)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Delete channel.
|
||||
func (c Channel) Delete() error {
|
||||
_, err := c.Client.Request("DELETE", "/channels/"+c.Id, []byte{})
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Create a new invite.
|
||||
// Returns a string (invite code) and error (nil if not exists).
|
||||
func (c Channel) CreateInvite() (string, error) {
|
||||
@ -193,14 +178,9 @@ func (c Channel) CreateInvite() (string, error) {
|
||||
}{}
|
||||
|
||||
err = json.Unmarshal(data, dataStruct)
|
||||
|
||||
if err != nil {
|
||||
return dataStruct.InviteCode, err
|
||||
}
|
||||
|
||||
return dataStruct.InviteCode, nil
|
||||
}
|
||||
|
||||
// Set channel permissions for a role.
|
||||
// Leave role field empty if you want to edit default permissions
|
||||
func (c Channel) SetPermissions(role_id string, permissions uint) error {
|
||||
@ -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
|
||||
}
|
||||
|
44
client.go
44
client.go
@ -125,12 +125,8 @@ func (c *Client) FetchChannel(id string) (*Channel, error) {
|
||||
}
|
||||
|
||||
err = json.Unmarshal(data, channel)
|
||||
|
||||
if err != nil {
|
||||
return channel, err
|
||||
}
|
||||
return channel, nil
|
||||
}
|
||||
|
||||
// Fetch an user by Id.
|
||||
func (c *Client) FetchUser(id string) (*User, error) {
|
||||
@ -144,14 +140,9 @@ func (c *Client) FetchUser(id string) (*User, error) {
|
||||
}
|
||||
|
||||
err = json.Unmarshal(data, user)
|
||||
|
||||
if err != nil {
|
||||
return user, err
|
||||
}
|
||||
|
||||
return user, nil
|
||||
}
|
||||
|
||||
// Fetch a server by Id.
|
||||
func (c *Client) FetchServer(id string) (*Server, error) {
|
||||
server := &Server{}
|
||||
@ -164,14 +155,9 @@ func (c *Client) FetchServer(id string) (*Server, error) {
|
||||
}
|
||||
|
||||
err = json.Unmarshal(data, server)
|
||||
|
||||
if err != nil {
|
||||
return server, err
|
||||
}
|
||||
|
||||
return server, nil
|
||||
}
|
||||
|
||||
// Create a server.
|
||||
func (c *Client) CreateServer(name, description string) (*Server, error) {
|
||||
server := &Server{}
|
||||
@ -184,14 +170,9 @@ func (c *Client) CreateServer(name, description string) (*Server, error) {
|
||||
}
|
||||
|
||||
err = json.Unmarshal(data, server)
|
||||
|
||||
if err != nil {
|
||||
return server, err
|
||||
}
|
||||
|
||||
return server, nil
|
||||
}
|
||||
|
||||
// Auth client user.
|
||||
func (c *Client) Auth() error {
|
||||
if c.SelfBot == nil {
|
||||
@ -205,12 +186,31 @@ func (c *Client) Auth() error {
|
||||
}
|
||||
|
||||
err = json.Unmarshal(resp, c.SelfBot)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
// 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 dmChannels, err
|
||||
}
|
||||
|
||||
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,14 +108,9 @@ 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
|
||||
}
|
||||
|
||||
// Reply to the message.
|
||||
func (m Message) Reply(mention bool, sm *SendMessage) (*Message, error) {
|
||||
if sm.Nonce == "" {
|
||||
|
16
user.go
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
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user