update json error methods

This commit is contained in:
2023-04-18 13:52:07 -07:00
parent 952bfe906e
commit 4c3e224db6
3 changed files with 28 additions and 3 deletions

View File

@@ -1,8 +1,13 @@
package client
import "errors"
const apiEndpoint = "https://api.elevenlabs.io"
var ErrUnauthorized error
var (
ErrUnauthorized = errors.New("unauthorized")
ErrUnspecified = errors.New("unspecified error")
)
type Client struct {
apiKey string

View File

@@ -4,6 +4,7 @@ import (
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
@@ -26,13 +27,24 @@ func (c Client) HistoryDelete(ctx context.Context, historyItemId string) (bool,
switch res.StatusCode {
case 422:
ve := types.ValidationError{}
defer res.Body.Close()
jerr := json.NewDecoder(res.Body).Decode(&ve)
if jerr != nil {
err = errors.Join(err, jerr)
} else {
err = errors.Join(err, ve)
}
return false, err
case 401:
return false, ErrUnauthorized
case 200:
if err != nil {
return false, nil
return false, err
}
return true, nil
default:
return false, errors.Join(err, ErrUnspecified)
}
return true, nil
}

View File

@@ -1,6 +1,9 @@
package types
import "os"
import (
"fmt"
"os"
)
type AddVoiceResponse struct {
VoiceID string `json:"voice_id"`
@@ -143,6 +146,11 @@ type ValidationError struct {
Msg string `json:"msg"`
Type_ string `json:"type"`
}
func (ve ValidationError) Error() string {
return fmt.Sprintf("%s %s: ", ve.Type_, ve.Msg)
}
type VerificationAttemptResponseModel struct {
Text string `json:"text"`
DateUnix int32 `json:"date_unix"`