62 lines
1.7 KiB
Go
62 lines
1.7 KiB
Go
|
// 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)
|
||
|
}
|