mirror of
https://github.com/diamondburned/arikawa.git
synced 2025-05-21 06:41:04 +00:00
State: Added a noop state store for convenience.
This commit is contained in:
parent
0cd486fc38
commit
04a33c3ee4
|
@ -57,6 +57,7 @@ type StoreModifier interface {
|
|||
ChannelSet(*discord.Channel) error
|
||||
ChannelRemove(*discord.Channel) error
|
||||
|
||||
// EmojiSet should delete all old emojis before setting new ones.
|
||||
EmojiSet(guildID discord.Snowflake, emojis []discord.Emoji) error
|
||||
|
||||
GuildSet(*discord.Guild) error
|
||||
|
|
|
@ -102,9 +102,7 @@ func (s *DefaultStore) Channel(id discord.Snowflake) (*discord.Channel, error) {
|
|||
return nil, ErrStoreNotFound
|
||||
}
|
||||
|
||||
func (s *DefaultStore) Channels(
|
||||
guildID discord.Snowflake) ([]discord.Channel, error) {
|
||||
|
||||
func (s *DefaultStore) Channels(guildID discord.Snowflake) ([]discord.Channel, error) {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -189,9 +187,7 @@ func (s *DefaultStore) ChannelRemove(channel *discord.Channel) error {
|
|||
|
||||
////
|
||||
|
||||
func (s *DefaultStore) Emoji(
|
||||
guildID, emojiID discord.Snowflake) (*discord.Emoji, error) {
|
||||
|
||||
func (s *DefaultStore) Emoji(guildID, emojiID discord.Snowflake) (*discord.Emoji, error) {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -209,9 +205,7 @@ func (s *DefaultStore) Emoji(
|
|||
return nil, ErrStoreNotFound
|
||||
}
|
||||
|
||||
func (s *DefaultStore) Emojis(
|
||||
guildID discord.Snowflake) ([]discord.Emoji, error) {
|
||||
|
||||
func (s *DefaultStore) Emojis(guildID discord.Snowflake) ([]discord.Emoji, error) {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -223,9 +217,7 @@ func (s *DefaultStore) Emojis(
|
|||
return append([]discord.Emoji{}, gd.Emojis...), nil
|
||||
}
|
||||
|
||||
func (s *DefaultStore) EmojiSet(
|
||||
guildID discord.Snowflake, emojis []discord.Emoji) error {
|
||||
|
||||
func (s *DefaultStore) EmojiSet(guildID discord.Snowflake, emojis []discord.Emoji) error {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -321,9 +313,7 @@ func (s *DefaultStore) GuildRemove(id discord.Snowflake) error {
|
|||
|
||||
////
|
||||
|
||||
func (s *DefaultStore) Member(
|
||||
guildID, userID discord.Snowflake) (*discord.Member, error) {
|
||||
|
||||
func (s *DefaultStore) Member(guildID, userID discord.Snowflake) (*discord.Member, error) {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -341,9 +331,7 @@ func (s *DefaultStore) Member(
|
|||
return nil, ErrStoreNotFound
|
||||
}
|
||||
|
||||
func (s *DefaultStore) Members(
|
||||
guildID discord.Snowflake) ([]discord.Member, error) {
|
||||
|
||||
func (s *DefaultStore) Members(guildID discord.Snowflake) ([]discord.Member, error) {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -355,9 +343,7 @@ func (s *DefaultStore) Members(
|
|||
return append([]discord.Member{}, ms...), nil
|
||||
}
|
||||
|
||||
func (s *DefaultStore) MemberSet(
|
||||
guildID discord.Snowflake, member *discord.Member) error {
|
||||
|
||||
func (s *DefaultStore) MemberSet(guildID discord.Snowflake, member *discord.Member) error {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -405,9 +391,7 @@ func (s *DefaultStore) MemberRemove(guildID, userID discord.Snowflake) error {
|
|||
|
||||
////
|
||||
|
||||
func (s *DefaultStore) Message(
|
||||
channelID, messageID discord.Snowflake) (*discord.Message, error) {
|
||||
|
||||
func (s *DefaultStore) Message(channelID, messageID discord.Snowflake) (*discord.Message, error) {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -425,9 +409,7 @@ func (s *DefaultStore) Message(
|
|||
return nil, ErrStoreNotFound
|
||||
}
|
||||
|
||||
func (s *DefaultStore) Messages(
|
||||
channelID discord.Snowflake) ([]discord.Message, error) {
|
||||
|
||||
func (s *DefaultStore) Messages(channelID discord.Snowflake) ([]discord.Message, error) {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -500,9 +482,7 @@ func (s *DefaultStore) MessageSet(message *discord.Message) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (s *DefaultStore) MessageRemove(
|
||||
channelID, messageID discord.Snowflake) error {
|
||||
|
||||
func (s *DefaultStore) MessageRemove(channelID, messageID discord.Snowflake) error {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -524,9 +504,7 @@ func (s *DefaultStore) MessageRemove(
|
|||
|
||||
////
|
||||
|
||||
func (s *DefaultStore) Presence(
|
||||
guildID, userID discord.Snowflake) (*discord.Presence, error) {
|
||||
|
||||
func (s *DefaultStore) Presence(guildID, userID discord.Snowflake) (*discord.Presence, error) {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -544,9 +522,7 @@ func (s *DefaultStore) Presence(
|
|||
return nil, ErrStoreNotFound
|
||||
}
|
||||
|
||||
func (s *DefaultStore) Presences(
|
||||
guildID discord.Snowflake) ([]discord.Presence, error) {
|
||||
|
||||
func (s *DefaultStore) Presences(guildID discord.Snowflake) ([]discord.Presence, error) {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -558,9 +534,7 @@ func (s *DefaultStore) Presences(
|
|||
return append([]discord.Presence{}, ps...), nil
|
||||
}
|
||||
|
||||
func (s *DefaultStore) PresenceSet(
|
||||
guildID discord.Snowflake, presence *discord.Presence) error {
|
||||
|
||||
func (s *DefaultStore) PresenceSet(guildID discord.Snowflake, presence *discord.Presence) error {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -603,9 +577,7 @@ func (s *DefaultStore) PresenceRemove(guildID, userID discord.Snowflake) error {
|
|||
|
||||
////
|
||||
|
||||
func (s *DefaultStore) Role(
|
||||
guildID, roleID discord.Snowflake) (*discord.Role, error) {
|
||||
|
||||
func (s *DefaultStore) Role(guildID, roleID discord.Snowflake) (*discord.Role, error) {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -623,9 +595,7 @@ func (s *DefaultStore) Role(
|
|||
return nil, ErrStoreNotFound
|
||||
}
|
||||
|
||||
func (s *DefaultStore) Roles(
|
||||
guildID discord.Snowflake) ([]discord.Role, error) {
|
||||
|
||||
func (s *DefaultStore) Roles(guildID discord.Snowflake) ([]discord.Role, error) {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
@ -637,9 +607,7 @@ func (s *DefaultStore) Roles(
|
|||
return append([]discord.Role{}, gd.Roles...), nil
|
||||
}
|
||||
|
||||
func (s *DefaultStore) RoleSet(
|
||||
guildID discord.Snowflake, role *discord.Role) error {
|
||||
|
||||
func (s *DefaultStore) RoleSet(guildID discord.Snowflake, role *discord.Role) error {
|
||||
s.mut.Lock()
|
||||
defer s.mut.Unlock()
|
||||
|
||||
|
|
146
state/store_noop.go
Normal file
146
state/store_noop.go
Normal file
|
@ -0,0 +1,146 @@
|
|||
package state
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/diamondburned/arikawa/discord"
|
||||
)
|
||||
|
||||
// NoopStore could be embedded by other structs for partial state
|
||||
// implementation. All Getters will return ErrNotImplemented, and all Setters
|
||||
// will return no error.
|
||||
type NoopStore struct{}
|
||||
|
||||
var _ Store = (*NoopStore)(nil)
|
||||
|
||||
var ErrNotImplemented = errors.New("State is not implemented")
|
||||
|
||||
func (NoopStore) Reset() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) Me() (*discord.User, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) MyselfSet(*discord.User) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) Channel(discord.Snowflake) (*discord.Channel, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) Channels(discord.Snowflake) ([]discord.Channel, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) PrivateChannels() ([]discord.Channel, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) ChannelSet(*discord.Channel) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) ChannelRemove(*discord.Channel) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) Emoji(_, _ discord.Snowflake) (*discord.Emoji, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) Emojis(discord.Snowflake) ([]discord.Emoji, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) EmojiSet(discord.Snowflake, []discord.Emoji) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) Guild(discord.Snowflake) (*discord.Guild, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) Guilds() ([]discord.Guild, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) GuildSet(*discord.Guild) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) GuildRemove(discord.Snowflake) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) Member(_, _ discord.Snowflake) (*discord.Member, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) Members(discord.Snowflake) ([]discord.Member, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) MemberSet(discord.Snowflake, *discord.Member) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) MemberRemove(_, _ discord.Snowflake) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) Message(_, _ discord.Snowflake) (*discord.Message, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) Messages(discord.Snowflake) ([]discord.Message, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
// MaxMessages will always return 100 messages, so the API can fetch that
|
||||
// many.
|
||||
func (NoopStore) MaxMessages() int {
|
||||
return 100
|
||||
}
|
||||
|
||||
func (NoopStore) MessageSet(message *discord.Message) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) MessageRemove(_, _ discord.Snowflake) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) Presence(_, _ discord.Snowflake) (*discord.Presence, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) Presences(discord.Snowflake) ([]discord.Presence, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) PresenceSet(discord.Snowflake, *discord.Presence) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) PresenceRemove(_, _ discord.Snowflake) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) Role(_, _ discord.Snowflake) (*discord.Role, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) Roles(discord.Snowflake) ([]discord.Role, error) {
|
||||
return nil, ErrNotImplemented
|
||||
}
|
||||
|
||||
func (NoopStore) RoleSet(discord.Snowflake, *discord.Role) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (NoopStore) RoleRemove(_, _ discord.Snowflake) error {
|
||||
return nil
|
||||
}
|
Loading…
Reference in a new issue