diff --git a/api/channel.go b/api/channel.go index a65e86e..2a26d15 100644 --- a/api/channel.go +++ b/api/channel.go @@ -170,7 +170,7 @@ func (c *Client) DeleteChannel(channelID discord.ChannelID) error { // https://discord.com/developers/docs/resources/channel#edit-channel-permissions-json-params type EditChannelPermissionData struct { // Type is either "role" or "member". - Type discord.OverwriteType `json:"type"` + Type discord.OverwriteType `json:"type,string"` // Allow is a permission bit set for granted permissions. Allow discord.Permissions `json:"allow,string"` // Deny is a permission bit set for denied permissions. diff --git a/discord/channel.go b/discord/channel.go index 8de7538..5668ae6 100644 --- a/discord/channel.go +++ b/discord/channel.go @@ -1,7 +1,5 @@ package discord -import "github.com/diamondburned/arikawa/utils/json" - // https://discord.com/developers/docs/resources/channel#channel-object type Channel struct { // ID is the id of this channel. @@ -107,42 +105,18 @@ type Overwrite struct { // ID is the role or user id. ID Snowflake `json:"id"` // Type is either "role" or "member". - Type OverwriteType `json:"type"` + Type OverwriteType `json:"type,string"` // Allow is a permission bit set for granted permissions. Allow Permissions `json:"allow,string"` // Deny is a permission bit set for denied permissions. Deny Permissions `json:"deny,string"` } -// UnmarshalJSON unmarshals the passed json data into the Overwrite. -// This is necessary because Discord has different names for fields when -// sending than receiving. -func (o *Overwrite) UnmarshalJSON(data []byte) (err error) { - var recv struct { - ID Snowflake `json:"id"` - Type OverwriteType `json:"type"` - Allow Permissions `json:"allow_new,string"` - Deny Permissions `json:"deny_new,string"` - } - - err = json.Unmarshal(data, &recv) - if err != nil { - return - } - - o.ID = recv.ID - o.Type = recv.Type - o.Allow = recv.Allow - o.Deny = recv.Deny - - return -} - -type OverwriteType string +type OverwriteType uint8 const ( // OverwriteRole is an overwrite for a role. - OverwriteRole OverwriteType = "role" + OverwriteRole OverwriteType = iota // OverwriteMember is an overwrite for a member. - OverwriteMember OverwriteType = "member" + OverwriteMember ) diff --git a/discord/guild.go b/discord/guild.go index ea3c093..bac3b0a 100644 --- a/discord/guild.go +++ b/discord/guild.go @@ -23,7 +23,7 @@ type Guild struct { // Permissions are the total permissions for the user in the guild // (excludes overrides). - Permissions Permissions `json:"permissions_new,omitempty,string"` + Permissions Permissions `json:"permissions,omitempty,string"` // VoiceRegion is the voice region id for the guild. VoiceRegion string `json:"region"` @@ -297,7 +297,7 @@ type Role struct { Position int `json:"position"` // Permissions is the permission bit set. - Permissions Permissions `json:"permissions_new,string"` + Permissions Permissions `json:"permissions,string"` // Manages specifies whether this role is managed by an integration. Managed bool `json:"managed"`