2024-07-31 21:09:11 +00:00
|
|
|
// Package characters holds functions that interact with the characters
|
|
|
|
package characters
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
"git.stinnesbeck.com/nils/artifacts/api"
|
|
|
|
)
|
|
|
|
|
|
|
|
// GetMy retrieves all characters from your account
|
|
|
|
func GetMy() ([]Character, error) {
|
|
|
|
// these are the possible response codes, other than 200 OK
|
|
|
|
responseCodes := map[int]string{
|
|
|
|
404: "Characters not found",
|
|
|
|
}
|
|
|
|
|
|
|
|
// use Get function to retrieve characters
|
|
|
|
return api.Get[[]Character]("/my/characters/", responseCodes)
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetAll tries to retrieve all characters on the server
|
|
|
|
func GetAll() ([]Character, error) {
|
|
|
|
// these are the possible response codes, other than 200 OK
|
|
|
|
responseCodes := map[int]string{
|
|
|
|
404: "Characters not found",
|
|
|
|
}
|
|
|
|
|
|
|
|
// use Get function to retrieve characters
|
|
|
|
return api.Get[[]Character]("/characters/", responseCodes)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Get tries to retrieve a character by name
|
|
|
|
func Get(name string) (Character, error) {
|
|
|
|
// these are the possible response codes, other than 200 OK
|
|
|
|
responseCodes := map[int]string{
|
|
|
|
404: "Character not found",
|
|
|
|
}
|
|
|
|
|
|
|
|
// use Get function to retrieve character
|
|
|
|
return api.Get[Character](fmt.Sprintf("/characters/%s", name), responseCodes)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Create will try to create a new character
|
|
|
|
func Create(name string, skin Skin) (Character, error) {
|
|
|
|
if len(name) > 12 {
|
|
|
|
return Character{}, fmt.Errorf("make sure to provide a name that is >=3 and <=12 characters long")
|
|
|
|
}
|
|
|
|
|
|
|
|
// these are the possible response codes, other than 200 OK
|
|
|
|
responseCodes := map[int]string{
|
|
|
|
494: "Name already used",
|
|
|
|
495: "Maximum characters reached on your account",
|
|
|
|
}
|
|
|
|
|
|
|
|
newChar := Character{
|
|
|
|
Name: name,
|
|
|
|
Skin: skin,
|
|
|
|
}
|
|
|
|
|
|
|
|
return api.Post[Character]("/characters/create", newChar, responseCodes)
|
|
|
|
}
|
2024-08-01 20:50:56 +00:00
|
|
|
|
|
|
|
func (c *Character) Refresh() error {
|
|
|
|
char, err := Get(c.Name)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
*c = char
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|