mirror of
https://github.com/diamondburned/arikawa.git
synced 2024-11-30 10:43:30 +00:00
cmdroute: Add OverwriteCommands
This adds a small helper function just for convenience.
This commit is contained in:
parent
feb624758b
commit
080c734b37
28
api/cmdroute/application.go
Normal file
28
api/cmdroute/application.go
Normal file
|
@ -0,0 +1,28 @@
|
|||
package cmdroute
|
||||
|
||||
import (
|
||||
"github.com/diamondburned/arikawa/v3/api"
|
||||
"github.com/diamondburned/arikawa/v3/discord"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// BulkCommandsOverwriter is an interface that allows to overwrite all commands
|
||||
// at once. Everything *api.Client will implement this interface, including
|
||||
// *state.State.
|
||||
type BulkCommandsOverwriter interface {
|
||||
CurrentApplication() (*discord.Application, error)
|
||||
BulkOverwriteCommands(appID discord.AppID, cmds []api.CreateCommandData) ([]discord.Command, error)
|
||||
}
|
||||
|
||||
var _ BulkCommandsOverwriter = (*api.Client)(nil)
|
||||
|
||||
// OverwriteCommands overwrites all commands for the current application.
|
||||
func OverwriteCommands(client BulkCommandsOverwriter, cmds []api.CreateCommandData) error {
|
||||
app, err := client.CurrentApplication()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "cannot get current app ID")
|
||||
}
|
||||
|
||||
_, err = client.BulkOverwriteCommands(app.ID, cmds)
|
||||
return errors.Wrap(err, "cannot overwrite commands")
|
||||
}
|
Loading…
Reference in a new issue