added create channel functions.
This commit is contained in:
parent
9b70f7e4cd
commit
b527ca2758
@ -127,7 +127,7 @@ func (c *Client) CreateServer(name, description string) (*Server, error) {
|
|||||||
server := &Server{}
|
server := &Server{}
|
||||||
server.Client = c
|
server.Client = c
|
||||||
|
|
||||||
data, err := c.Request("POST", "/servers/create", []byte("{\"name\": \""+name+"\", \"description\": \""+description+"\", \"nonce\": \""+genULID()+"\"}"))
|
data, err := c.Request("POST", "/servers/create", []byte("{\"name\":\""+name+"\",\"description\":\""+description+"\",\"nonce\":\""+genULID()+"\"}"))
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return server, err
|
return server, err
|
||||||
|
8
http.go
8
http.go
@ -27,10 +27,6 @@ func (c Client) Request(method, path string, data []byte) ([]byte, error) {
|
|||||||
return []byte{}, err
|
return []byte{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if !(resp.StatusCode >= 200 && resp.StatusCode < 300) {
|
|
||||||
return []byte{}, fmt.Errorf(resp.Status)
|
|
||||||
}
|
|
||||||
|
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
body, err := ioutil.ReadAll(resp.Body)
|
body, err := ioutil.ReadAll(resp.Body)
|
||||||
|
|
||||||
@ -38,5 +34,9 @@ func (c Client) Request(method, path string, data []byte) ([]byte, error) {
|
|||||||
return []byte{}, err
|
return []byte{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !(resp.StatusCode >= 200 && resp.StatusCode < 300) {
|
||||||
|
return []byte{}, fmt.Errorf("%s: %s", resp.Status, body)
|
||||||
|
}
|
||||||
|
|
||||||
return body, nil
|
return body, nil
|
||||||
}
|
}
|
||||||
|
54
server.go
54
server.go
@ -42,26 +42,26 @@ type SystemMessages struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Calculate creation date and edit the struct.
|
// Calculate creation date and edit the struct.
|
||||||
func (c *Server) CalculateCreationDate() error {
|
func (s *Server) CalculateCreationDate() error {
|
||||||
ulid, err := ulid.Parse(c.Id)
|
ulid, err := ulid.Parse(s.Id)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
c.CreatedAt = time.UnixMilli(int64(ulid.Time()))
|
s.CreatedAt = time.UnixMilli(int64(ulid.Time()))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit server.
|
// Edit server.
|
||||||
func (c Server) Edit(es *EditServer) error {
|
func (s Server) Edit(es *EditServer) error {
|
||||||
data, err := json.Marshal(es)
|
data, err := json.Marshal(es)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = c.Client.Request("PATCH", "/servers/"+c.Id, data)
|
_, err = s.Client.Request("PATCH", "/servers/"+s.Id, data)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -73,8 +73,8 @@ func (c Server) Edit(es *EditServer) error {
|
|||||||
// Delete / leave server.
|
// Delete / leave server.
|
||||||
// If the server not created by client, it will leave.
|
// If the server not created by client, it will leave.
|
||||||
// Otherwise it will be deleted.
|
// Otherwise it will be deleted.
|
||||||
func (c Server) Delete() error {
|
func (s Server) Delete() error {
|
||||||
_, err := c.Client.Request("DELETE", "/servers/"+c.Id, []byte{})
|
_, err := s.Client.Request("DELETE", "/servers/"+s.Id, []byte{})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -82,3 +82,43 @@ func (c Server) Delete() error {
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create a new text-channel.
|
||||||
|
func (s Server) CreateTextChannel(name, description string) (*Channel, error) {
|
||||||
|
channel := &Channel{}
|
||||||
|
channel.Client = s.Client
|
||||||
|
|
||||||
|
data, err := s.Client.Request("POST", "/servers/"+s.Id+"/channels", []byte("{\"type\":\"Text\",\"name\":\""+name+"\",\"description\":\""+description+"\",\"nonce\":\""+genULID()+"\"}"))
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return channel, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = json.Unmarshal(data, channel)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return channel, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return channel, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a new voice-channel.
|
||||||
|
func (s Server) CreateVoiceChannel(name, description string) (*Channel, error) {
|
||||||
|
channel := &Channel{}
|
||||||
|
channel.Client = s.Client
|
||||||
|
|
||||||
|
data, err := s.Client.Request("POST", "/servers/"+s.Id+"/channels", []byte("{\"type\":\"Voice\",\"name\":\""+name+"\",\"description\":\""+description+"\",\"nonce\":\""+genULID()+"\"}"))
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return channel, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = json.Unmarshal(data, channel)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return channel, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return channel, nil
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user