mi-v1/pluralkit/members.go

51 lines
1.2 KiB
Go

package pluralkit
import (
"net/http"
"time"
)
// Member is an individual member of a plural system
type Member struct {
ID string `json:"id"`
Name *string `json:"name"`
DisplayName *string `json:"display_name"`
Description *string `json:"description"`
Color *string `json:"color"`
AvatarURL *string `json:"avatar_url"`
Birthday *string `json:"birthday"`
ProxyTags []ProxyTag `json:"proxy_tags"`
KeepProxy bool `json:"keep_proxy"`
Created time.Time `json:"created"`
}
// ProxyTags are the message encoding used for proxying messages
type ProxyTag struct {
Prefix string `json:"prefix"`
Suffix string `json:"suffix"`
}
// Member fetches a given member by ID.
func (c Client) Member(id string) (Member, error) {
var result Member
err := c.Do(http.MethodGet, "m/"+id, http.StatusOK, nil, &result)
if err != nil {
return result, err
}
return result, nil
}
// SystemMembers returns the members for a given system.
func (c Client) SystemMembers(systemID string) ([]Member, error) {
var result []Member
err := c.Do(http.MethodGet, "s/"+systemID+"/members", http.StatusOK, nil, &result)
if err != nil {
return nil, err
}
return result, nil
}