From 06e6c09882e1d7ac40f17785cd3c95c836ab3fff Mon Sep 17 00:00:00 2001 From: Deluan Date: Fri, 26 Dec 2025 13:27:24 -0500 Subject: [PATCH] refactor: error handling in various plugins to convert response.Error to Go errors - Updated error handling in `nd_host_scheduler.go`, `nd_host_websocket.go`, `nd_host_artwork.go`, `nd_host_cache.go`, and `nd_host_subsonicapi.go` to convert string errors from responses into Go errors. - Removed redundant error checks in test data plugins for cleaner code. - Ensured consistent error handling across all plugins to improve reliability and maintainability. --- .../internal/templates/client_go.go.tmpl | 6 +++ .../hostgen/testdata/codec_client_expected.go | 6 +++ .../testdata/counter_client_expected.go | 6 +++ .../hostgen/testdata/echo_client_expected.go | 6 +++ .../hostgen/testdata/list_client_expected.go | 6 +++ .../hostgen/testdata/math_client_expected.go | 6 +++ .../hostgen/testdata/meta_client_expected.go | 11 ++++ .../hostgen/testdata/ping_client_expected.go | 6 +++ .../testdata/search_client_expected.go | 6 +++ .../hostgen/testdata/store_client_expected.go | 6 +++ .../hostgen/testdata/users_client_expected.go | 6 +++ plugins/examples/crypto-ticker/main.go | 20 ++------ .../crypto-ticker/nd_host_scheduler.go | 16 ++++++ .../crypto-ticker/nd_host_websocket.go | 21 ++++++++ .../examples/discord-rich-presence/main.go | 4 -- .../discord-rich-presence/nd_host_artwork.go | 21 ++++++++ .../discord-rich-presence/nd_host_cache.go | 51 +++++++++++++++++++ .../nd_host_scheduler.go | 16 ++++++ .../nd_host_websocket.go | 21 ++++++++ plugins/examples/discord-rich-presence/rpc.go | 30 +++-------- plugins/host/go/nd_host_artwork.go | 21 ++++++++ plugins/host/go/nd_host_cache.go | 51 +++++++++++++++++++ plugins/host/go/nd_host_scheduler.go | 16 ++++++ plugins/host/go/nd_host_subsonicapi.go | 6 +++ plugins/host/go/nd_host_websocket.go | 21 ++++++++ plugins/testdata/fake-artwork/main.go | 16 ------ .../testdata/fake-artwork/nd_host_artwork.go | 21 ++++++++ plugins/testdata/fake-scheduler/main.go | 5 +- .../fake-scheduler/nd_host_scheduler.go | 16 ++++++ .../testdata/fake-subsonicapi-plugin/main.go | 6 --- .../nd_host_subsonicapi.go | 6 +++ plugins/testdata/fake-websocket/main.go | 12 +---- .../fake-websocket/nd_host_websocket.go | 21 ++++++++ plugins/testdata/fake_cache_plugin/main.go | 50 ++---------------- .../fake_cache_plugin/nd_host_cache.go | 51 +++++++++++++++++++ 35 files changed, 467 insertions(+), 123 deletions(-) diff --git a/plugins/cmd/hostgen/internal/templates/client_go.go.tmpl b/plugins/cmd/hostgen/internal/templates/client_go.go.tmpl index f87f98e5b..43718026c 100644 --- a/plugins/cmd/hostgen/internal/templates/client_go.go.tmpl +++ b/plugins/cmd/hostgen/internal/templates/client_go.go.tmpl @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -83,6 +84,11 @@ func {{$.Service.Name}}{{.Name}}({{range $i, $p := .Params}}{{if $i}}, {{end}}{{ return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } {{- end}} diff --git a/plugins/cmd/hostgen/testdata/codec_client_expected.go b/plugins/cmd/hostgen/testdata/codec_client_expected.go index fcc6d81a3..508dff39d 100644 --- a/plugins/cmd/hostgen/testdata/codec_client_expected.go +++ b/plugins/cmd/hostgen/testdata/codec_client_expected.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -55,5 +56,10 @@ func CodecEncode(data []byte) (*CodecEncodeResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/cmd/hostgen/testdata/counter_client_expected.go b/plugins/cmd/hostgen/testdata/counter_client_expected.go index 95b571282..6c0f61fd9 100644 --- a/plugins/cmd/hostgen/testdata/counter_client_expected.go +++ b/plugins/cmd/hostgen/testdata/counter_client_expected.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -55,5 +56,10 @@ func CounterCount(name string) (*CounterCountResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/cmd/hostgen/testdata/echo_client_expected.go b/plugins/cmd/hostgen/testdata/echo_client_expected.go index ef94da475..15ae0b2c1 100644 --- a/plugins/cmd/hostgen/testdata/echo_client_expected.go +++ b/plugins/cmd/hostgen/testdata/echo_client_expected.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -55,5 +56,10 @@ func EchoEcho(message string) (*EchoEchoResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/cmd/hostgen/testdata/list_client_expected.go b/plugins/cmd/hostgen/testdata/list_client_expected.go index 7a9576aba..0650f1b8c 100644 --- a/plugins/cmd/hostgen/testdata/list_client_expected.go +++ b/plugins/cmd/hostgen/testdata/list_client_expected.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -57,5 +58,10 @@ func ListItems(name string, filter Filter) (*ListItemsResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/cmd/hostgen/testdata/math_client_expected.go b/plugins/cmd/hostgen/testdata/math_client_expected.go index fe9d62945..e27f455fc 100644 --- a/plugins/cmd/hostgen/testdata/math_client_expected.go +++ b/plugins/cmd/hostgen/testdata/math_client_expected.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -57,5 +58,10 @@ func MathAdd(a int32, b int32) (*MathAddResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/cmd/hostgen/testdata/meta_client_expected.go b/plugins/cmd/hostgen/testdata/meta_client_expected.go index 1cbb8f19e..a43a1fecf 100644 --- a/plugins/cmd/hostgen/testdata/meta_client_expected.go +++ b/plugins/cmd/hostgen/testdata/meta_client_expected.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -70,6 +71,11 @@ func MetaGet(key string) (*MetaGetResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -99,5 +105,10 @@ func MetaSet(data map[string]any) (*MetaSetResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/cmd/hostgen/testdata/ping_client_expected.go b/plugins/cmd/hostgen/testdata/ping_client_expected.go index 870621229..9c390b7ba 100644 --- a/plugins/cmd/hostgen/testdata/ping_client_expected.go +++ b/plugins/cmd/hostgen/testdata/ping_client_expected.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -42,5 +43,10 @@ func PingPing() (*PingPingResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/cmd/hostgen/testdata/search_client_expected.go b/plugins/cmd/hostgen/testdata/search_client_expected.go index b88438b85..769b7883e 100644 --- a/plugins/cmd/hostgen/testdata/search_client_expected.go +++ b/plugins/cmd/hostgen/testdata/search_client_expected.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -56,5 +57,10 @@ func SearchFind(query string) (*SearchFindResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/cmd/hostgen/testdata/store_client_expected.go b/plugins/cmd/hostgen/testdata/store_client_expected.go index 1e9b7f837..1509baea1 100644 --- a/plugins/cmd/hostgen/testdata/store_client_expected.go +++ b/plugins/cmd/hostgen/testdata/store_client_expected.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -55,5 +56,10 @@ func StoreSave(item Item) (*StoreSaveResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/cmd/hostgen/testdata/users_client_expected.go b/plugins/cmd/hostgen/testdata/users_client_expected.go index 63ff0add4..b564cab27 100644 --- a/plugins/cmd/hostgen/testdata/users_client_expected.go +++ b/plugins/cmd/hostgen/testdata/users_client_expected.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -57,5 +58,10 @@ func UsersGet(id *string, filter *User) (*UsersGetResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/examples/crypto-ticker/main.go b/plugins/examples/crypto-ticker/main.go index bb3c9264f..2ebded2f2 100755 --- a/plugins/examples/crypto-ticker/main.go +++ b/plugins/examples/crypto-ticker/main.go @@ -178,10 +178,7 @@ func connectAndSubscribe(tickers []string) error { // Connect to WebSocket using host function resp, err := WebSocketConnect(coinbaseWSEndpoint, nil, connectionID) if err != nil { - return fmt.Errorf("WebSocket connection error: %v", err) - } - if resp.Error != "" { - return fmt.Errorf("WebSocket connection error: %s", resp.Error) + return fmt.Errorf("WebSocket connection error: %w", err) } pdk.Log(pdk.LogInfo, fmt.Sprintf("Connected to Coinbase WebSocket API (connection: %s)", resp.NewConnectionID)) @@ -198,12 +195,9 @@ func connectAndSubscribe(tickers []string) error { } // Send subscription message - sendResp, err := WebSocketSendText(connectionID, string(subscriptionJSON)) + _, err = WebSocketSendText(connectionID, string(subscriptionJSON)) if err != nil { - return fmt.Errorf("WebSocket send error: %v", err) - } - if sendResp.Error != "" { - return fmt.Errorf("WebSocket send error: %s", sendResp.Error) + return fmt.Errorf("WebSocket send error: %w", err) } pdk.Log(pdk.LogInfo, "Subscription message sent to Coinbase WebSocket API") @@ -272,11 +266,9 @@ func NdWebsocketOnClose(input OnCloseInput) (OnCloseOutput, error) { pdk.Log(pdk.LogInfo, "Scheduling reconnection attempt in 5 seconds...") // Schedule a one-time reconnection attempt - resp, err := SchedulerScheduleOneTime(5, "reconnect", reconnectScheduleID) + _, err := SchedulerScheduleOneTime(5, "reconnect", reconnectScheduleID) if err != nil { pdk.Log(pdk.LogError, fmt.Sprintf("Failed to schedule reconnection: %v", err)) - } else if resp.Error != "" { - pdk.Log(pdk.LogError, fmt.Sprintf("Failed to schedule reconnection: %s", resp.Error)) } } @@ -325,11 +317,9 @@ func ndSchedulerCallback() int32 { pdk.Log(pdk.LogError, fmt.Sprintf("Reconnection failed: %v - will retry in 10 seconds", err)) // Schedule another attempt - resp, err := SchedulerScheduleOneTime(10, "reconnect", reconnectScheduleID) + _, err := SchedulerScheduleOneTime(10, "reconnect", reconnectScheduleID) if err != nil { pdk.Log(pdk.LogError, fmt.Sprintf("Failed to schedule retry: %v", err)) - } else if resp.Error != "" { - pdk.Log(pdk.LogError, fmt.Sprintf("Failed to schedule retry: %s", resp.Error)) } } else { pdk.Log(pdk.LogInfo, "Successfully reconnected!") diff --git a/plugins/examples/crypto-ticker/nd_host_scheduler.go b/plugins/examples/crypto-ticker/nd_host_scheduler.go index d341343c8..4fe01e084 100644 --- a/plugins/examples/crypto-ticker/nd_host_scheduler.go +++ b/plugins/examples/crypto-ticker/nd_host_scheduler.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -101,6 +102,11 @@ func SchedulerScheduleOneTime(delaySeconds int32, payload string, scheduleID str return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -141,6 +147,11 @@ func SchedulerScheduleRecurring(cronExpression string, payload string, scheduleI return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -176,5 +187,10 @@ func SchedulerCancelSchedule(scheduleID string) (*SchedulerCancelScheduleRespons return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/examples/crypto-ticker/nd_host_websocket.go b/plugins/examples/crypto-ticker/nd_host_websocket.go index e6daea765..39d15c3b1 100644 --- a/plugins/examples/crypto-ticker/nd_host_websocket.go +++ b/plugins/examples/crypto-ticker/nd_host_websocket.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -120,6 +121,11 @@ func WebSocketConnect(url string, headers map[string]string, connectionID string return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -157,6 +163,11 @@ func WebSocketSendText(connectionID string, message string) (*WebSocketSendTextR return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -194,6 +205,11 @@ func WebSocketSendBinary(connectionID string, data []byte) (*WebSocketSendBinary return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -233,5 +249,10 @@ func WebSocketCloseConnection(connectionID string, code int32, reason string) (* return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/examples/discord-rich-presence/main.go b/plugins/examples/discord-rich-presence/main.go index 99b81028b..3164b6278 100644 --- a/plugins/examples/discord-rich-presence/main.go +++ b/plugins/examples/discord-rich-presence/main.go @@ -129,10 +129,6 @@ func getImageURL(trackID string) string { pdk.Log(pdk.LogWarn, fmt.Sprintf("Failed to get artwork URL: %v", err)) return "" } - if resp.Error != "" { - pdk.Log(pdk.LogWarn, fmt.Sprintf("Failed to get artwork URL: %s", resp.Error)) - return "" - } // Don't use localhost URLs if strings.HasPrefix(resp.Url, "http://localhost") { diff --git a/plugins/examples/discord-rich-presence/nd_host_artwork.go b/plugins/examples/discord-rich-presence/nd_host_artwork.go index 65e5efb81..65577b877 100644 --- a/plugins/examples/discord-rich-presence/nd_host_artwork.go +++ b/plugins/examples/discord-rich-presence/nd_host_artwork.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -115,6 +116,11 @@ func ArtworkGetArtistUrl(id string, size int32) (*ArtworkGetArtistUrlResponse, e return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -152,6 +158,11 @@ func ArtworkGetAlbumUrl(id string, size int32) (*ArtworkGetAlbumUrlResponse, err return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -189,6 +200,11 @@ func ArtworkGetTrackUrl(id string, size int32) (*ArtworkGetTrackUrlResponse, err return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -226,5 +242,10 @@ func ArtworkGetPlaylistUrl(id string, size int32) (*ArtworkGetPlaylistUrlRespons return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/examples/discord-rich-presence/nd_host_cache.go b/plugins/examples/discord-rich-presence/nd_host_cache.go index 36be869ae..81dbfa229 100644 --- a/plugins/examples/discord-rich-presence/nd_host_cache.go +++ b/plugins/examples/discord-rich-presence/nd_host_cache.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -216,6 +217,11 @@ func CacheSetString(key string, value string, ttlSeconds int64) (*CacheSetString return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -252,6 +258,11 @@ func CacheGetString(key string) (*CacheGetStringResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -291,6 +302,11 @@ func CacheSetInt(key string, value int64, ttlSeconds int64) (*CacheSetIntRespons return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -327,6 +343,11 @@ func CacheGetInt(key string) (*CacheGetIntResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -366,6 +387,11 @@ func CacheSetFloat(key string, value float64, ttlSeconds int64) (*CacheSetFloatR return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -402,6 +428,11 @@ func CacheGetFloat(key string) (*CacheGetFloatResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -441,6 +472,11 @@ func CacheSetBytes(key string, value []byte, ttlSeconds int64) (*CacheSetBytesRe return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -477,6 +513,11 @@ func CacheGetBytes(key string) (*CacheGetBytesResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -512,6 +553,11 @@ func CacheHas(key string) (*CacheHasResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -547,5 +593,10 @@ func CacheRemove(key string) (*CacheRemoveResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/examples/discord-rich-presence/nd_host_scheduler.go b/plugins/examples/discord-rich-presence/nd_host_scheduler.go index d341343c8..4fe01e084 100644 --- a/plugins/examples/discord-rich-presence/nd_host_scheduler.go +++ b/plugins/examples/discord-rich-presence/nd_host_scheduler.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -101,6 +102,11 @@ func SchedulerScheduleOneTime(delaySeconds int32, payload string, scheduleID str return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -141,6 +147,11 @@ func SchedulerScheduleRecurring(cronExpression string, payload string, scheduleI return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -176,5 +187,10 @@ func SchedulerCancelSchedule(scheduleID string) (*SchedulerCancelScheduleRespons return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/examples/discord-rich-presence/nd_host_websocket.go b/plugins/examples/discord-rich-presence/nd_host_websocket.go index e6daea765..39d15c3b1 100644 --- a/plugins/examples/discord-rich-presence/nd_host_websocket.go +++ b/plugins/examples/discord-rich-presence/nd_host_websocket.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -120,6 +121,11 @@ func WebSocketConnect(url string, headers map[string]string, connectionID string return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -157,6 +163,11 @@ func WebSocketSendText(connectionID string, message string) (*WebSocketSendTextR return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -194,6 +205,11 @@ func WebSocketSendBinary(connectionID string, data []byte) (*WebSocketSendBinary return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -233,5 +249,10 @@ func WebSocketCloseConnection(connectionID string, code int32, reason string) (* return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/examples/discord-rich-presence/rpc.go b/plugins/examples/discord-rich-presence/rpc.go index 12f0d624b..f550cce97 100644 --- a/plugins/examples/discord-rich-presence/rpc.go +++ b/plugins/examples/discord-rich-presence/rpc.go @@ -183,13 +183,10 @@ func sendMessage(username string, opCode int, payload any) error { return fmt.Errorf("failed to marshal message: %w", err) } - resp, err := WebSocketSendText(username, string(b)) + _, err = WebSocketSendText(username, string(b)) if err != nil { return fmt.Errorf("failed to send message: %w", err) } - if resp.Error != "" { - return fmt.Errorf("failed to send message: %s", resp.Error) - } return nil } @@ -224,17 +221,13 @@ func cleanupFailedConnection(username string) { pdk.Log(pdk.LogInfo, fmt.Sprintf("Cleaning up failed connection for user %s", username)) // Cancel the heartbeat schedule - if resp, err := SchedulerCancelSchedule(username); err != nil { + if _, err := SchedulerCancelSchedule(username); err != nil { pdk.Log(pdk.LogWarn, fmt.Sprintf("Failed to cancel heartbeat schedule for user %s: %v", username, err)) - } else if resp.Error != "" { - pdk.Log(pdk.LogWarn, fmt.Sprintf("Failed to cancel heartbeat schedule for user %s: %s", username, resp.Error)) } // Close the WebSocket connection - if resp, err := WebSocketCloseConnection(username, 1000, "Connection lost"); err != nil { + if _, err := WebSocketCloseConnection(username, 1000, "Connection lost"); err != nil { pdk.Log(pdk.LogWarn, fmt.Sprintf("Failed to close WebSocket connection for user %s: %v", username, err)) - } else if resp.Error != "" { - pdk.Log(pdk.LogWarn, fmt.Sprintf("Failed to close WebSocket connection for user %s: %s", username, resp.Error)) } // Clean up cache entries @@ -269,13 +262,10 @@ func connect(username, token string) error { pdk.Log(pdk.LogDebug, fmt.Sprintf("Using gateway: %s", gateway)) // Connect to Discord Gateway - resp, err := WebSocketConnect(gateway, nil, username) + _, err = WebSocketConnect(gateway, nil, username) if err != nil { return fmt.Errorf("failed to connect to WebSocket: %w", err) } - if resp.Error != "" { - return fmt.Errorf("failed to connect to WebSocket: %s", resp.Error) - } // Send identify payload payload := identifyPayload{ @@ -305,16 +295,12 @@ func connect(username, token string) error { // disconnect closes the Discord connection for a user. func disconnect(username string) error { - if resp, err := SchedulerCancelSchedule(username); err != nil { + if _, err := SchedulerCancelSchedule(username); err != nil { return fmt.Errorf("failed to cancel schedule: %w", err) - } else if resp.Error != "" { - return fmt.Errorf("failed to cancel schedule: %s", resp.Error) } - if resp, err := WebSocketCloseConnection(username, 1000, "Navidrome disconnect"); err != nil { + if _, err := WebSocketCloseConnection(username, 1000, "Navidrome disconnect"); err != nil { return fmt.Errorf("failed to close WebSocket connection: %w", err) - } else if resp.Error != "" { - return fmt.Errorf("failed to close WebSocket connection: %s", resp.Error) } return nil } @@ -337,10 +323,8 @@ func handleWebSocketMessage(connectionID, message string) error { if v := msg["s"]; v != nil { seq := int64(v.(float64)) pdk.Log(pdk.LogTrace, fmt.Sprintf("Received sequence number for connection '%s': %d", connectionID, seq)) - if resp, err := CacheSetInt(fmt.Sprintf("discord.seq.%s", connectionID), seq, int64(heartbeatInterval*2)); err != nil { + if _, err := CacheSetInt(fmt.Sprintf("discord.seq.%s", connectionID), seq, int64(heartbeatInterval*2)); err != nil { return fmt.Errorf("failed to store sequence number for user %s: %w", connectionID, err) - } else if resp.Error != "" { - return fmt.Errorf("failed to store sequence number for user %s: %s", connectionID, resp.Error) } } return nil diff --git a/plugins/host/go/nd_host_artwork.go b/plugins/host/go/nd_host_artwork.go index 65e5efb81..65577b877 100644 --- a/plugins/host/go/nd_host_artwork.go +++ b/plugins/host/go/nd_host_artwork.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -115,6 +116,11 @@ func ArtworkGetArtistUrl(id string, size int32) (*ArtworkGetArtistUrlResponse, e return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -152,6 +158,11 @@ func ArtworkGetAlbumUrl(id string, size int32) (*ArtworkGetAlbumUrlResponse, err return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -189,6 +200,11 @@ func ArtworkGetTrackUrl(id string, size int32) (*ArtworkGetTrackUrlResponse, err return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -226,5 +242,10 @@ func ArtworkGetPlaylistUrl(id string, size int32) (*ArtworkGetPlaylistUrlRespons return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/host/go/nd_host_cache.go b/plugins/host/go/nd_host_cache.go index 36be869ae..81dbfa229 100644 --- a/plugins/host/go/nd_host_cache.go +++ b/plugins/host/go/nd_host_cache.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -216,6 +217,11 @@ func CacheSetString(key string, value string, ttlSeconds int64) (*CacheSetString return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -252,6 +258,11 @@ func CacheGetString(key string) (*CacheGetStringResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -291,6 +302,11 @@ func CacheSetInt(key string, value int64, ttlSeconds int64) (*CacheSetIntRespons return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -327,6 +343,11 @@ func CacheGetInt(key string) (*CacheGetIntResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -366,6 +387,11 @@ func CacheSetFloat(key string, value float64, ttlSeconds int64) (*CacheSetFloatR return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -402,6 +428,11 @@ func CacheGetFloat(key string) (*CacheGetFloatResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -441,6 +472,11 @@ func CacheSetBytes(key string, value []byte, ttlSeconds int64) (*CacheSetBytesRe return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -477,6 +513,11 @@ func CacheGetBytes(key string) (*CacheGetBytesResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -512,6 +553,11 @@ func CacheHas(key string) (*CacheHasResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -547,5 +593,10 @@ func CacheRemove(key string) (*CacheRemoveResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/host/go/nd_host_scheduler.go b/plugins/host/go/nd_host_scheduler.go index d341343c8..4fe01e084 100644 --- a/plugins/host/go/nd_host_scheduler.go +++ b/plugins/host/go/nd_host_scheduler.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -101,6 +102,11 @@ func SchedulerScheduleOneTime(delaySeconds int32, payload string, scheduleID str return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -141,6 +147,11 @@ func SchedulerScheduleRecurring(cronExpression string, payload string, scheduleI return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -176,5 +187,10 @@ func SchedulerCancelSchedule(scheduleID string) (*SchedulerCancelScheduleRespons return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/host/go/nd_host_subsonicapi.go b/plugins/host/go/nd_host_subsonicapi.go index ec69b718d..1d7be2f61 100644 --- a/plugins/host/go/nd_host_subsonicapi.go +++ b/plugins/host/go/nd_host_subsonicapi.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -59,5 +60,10 @@ func SubsonicAPICall(uri string) (*SubsonicAPICallResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/host/go/nd_host_websocket.go b/plugins/host/go/nd_host_websocket.go index e6daea765..39d15c3b1 100644 --- a/plugins/host/go/nd_host_websocket.go +++ b/plugins/host/go/nd_host_websocket.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -120,6 +121,11 @@ func WebSocketConnect(url string, headers map[string]string, connectionID string return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -157,6 +163,11 @@ func WebSocketSendText(connectionID string, message string) (*WebSocketSendTextR return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -194,6 +205,11 @@ func WebSocketSendBinary(connectionID string, data []byte) (*WebSocketSendBinary return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -233,5 +249,10 @@ func WebSocketCloseConnection(connectionID string, code int32, reason string) (* return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/testdata/fake-artwork/main.go b/plugins/testdata/fake-artwork/main.go index b7ec1897b..5ec68bcc8 100644 --- a/plugins/testdata/fake-artwork/main.go +++ b/plugins/testdata/fake-artwork/main.go @@ -80,10 +80,6 @@ func ndTestArtwork() int32 { resp, e := ArtworkGetArtistUrl(input.ID, input.Size) if e != nil { err = e - } else if resp.Error != "" { - errStr := resp.Error - pdk.OutputJSON(TestOutput{Error: &errStr}) - return 0 } else { url = resp.Url } @@ -91,10 +87,6 @@ func ndTestArtwork() int32 { resp, e := ArtworkGetAlbumUrl(input.ID, input.Size) if e != nil { err = e - } else if resp.Error != "" { - errStr := resp.Error - pdk.OutputJSON(TestOutput{Error: &errStr}) - return 0 } else { url = resp.Url } @@ -102,10 +94,6 @@ func ndTestArtwork() int32 { resp, e := ArtworkGetTrackUrl(input.ID, input.Size) if e != nil { err = e - } else if resp.Error != "" { - errStr := resp.Error - pdk.OutputJSON(TestOutput{Error: &errStr}) - return 0 } else { url = resp.Url } @@ -113,10 +101,6 @@ func ndTestArtwork() int32 { resp, e := ArtworkGetPlaylistUrl(input.ID, input.Size) if e != nil { err = e - } else if resp.Error != "" { - errStr := resp.Error - pdk.OutputJSON(TestOutput{Error: &errStr}) - return 0 } else { url = resp.Url } diff --git a/plugins/testdata/fake-artwork/nd_host_artwork.go b/plugins/testdata/fake-artwork/nd_host_artwork.go index 65e5efb81..65577b877 100644 --- a/plugins/testdata/fake-artwork/nd_host_artwork.go +++ b/plugins/testdata/fake-artwork/nd_host_artwork.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -115,6 +116,11 @@ func ArtworkGetArtistUrl(id string, size int32) (*ArtworkGetArtistUrlResponse, e return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -152,6 +158,11 @@ func ArtworkGetAlbumUrl(id string, size int32) (*ArtworkGetAlbumUrlResponse, err return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -189,6 +200,11 @@ func ArtworkGetTrackUrl(id string, size int32) (*ArtworkGetTrackUrlResponse, err return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -226,5 +242,10 @@ func ArtworkGetPlaylistUrl(id string, size int32) (*ArtworkGetPlaylistUrlRespons return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/testdata/fake-scheduler/main.go b/plugins/testdata/fake-scheduler/main.go index 2bf48f420..0857502b7 100644 --- a/plugins/testdata/fake-scheduler/main.go +++ b/plugins/testdata/fake-scheduler/main.go @@ -68,14 +68,11 @@ func NdSchedulerCallback(input SchedulerCallbackInput) (SchedulerCallbackOutput, } case len(input.Payload) > 19 && input.Payload[:19] == "schedule-duplicate:": duplicateID := input.Payload[19:] - resp, err := SchedulerScheduleOneTime(60, "duplicate-attempt", duplicateID) + _, err := SchedulerScheduleOneTime(60, "duplicate-attempt", duplicateID) if err != nil { errStr := err.Error() return SchedulerCallbackOutput{Error: &errStr}, nil } - if resp.Error != "" { - return SchedulerCallbackOutput{Error: &resp.Error}, nil - } } return SchedulerCallbackOutput{}, nil } diff --git a/plugins/testdata/fake-scheduler/nd_host_scheduler.go b/plugins/testdata/fake-scheduler/nd_host_scheduler.go index d341343c8..4fe01e084 100644 --- a/plugins/testdata/fake-scheduler/nd_host_scheduler.go +++ b/plugins/testdata/fake-scheduler/nd_host_scheduler.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -101,6 +102,11 @@ func SchedulerScheduleOneTime(delaySeconds int32, payload string, scheduleID str return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -141,6 +147,11 @@ func SchedulerScheduleRecurring(cronExpression string, payload string, scheduleI return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -176,5 +187,10 @@ func SchedulerCancelSchedule(scheduleID string) (*SchedulerCancelScheduleRespons return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/testdata/fake-subsonicapi-plugin/main.go b/plugins/testdata/fake-subsonicapi-plugin/main.go index 2adad2fed..9fbc5f5fe 100644 --- a/plugins/testdata/fake-subsonicapi-plugin/main.go +++ b/plugins/testdata/fake-subsonicapi-plugin/main.go @@ -66,12 +66,6 @@ func callSubsonicAPIExport() int32 { return 1 } - // Check for error in response - if response.Error != "" { - pdk.SetErrorString("SubsonicAPI error: " + response.Error) - return 1 - } - // Return the response pdk.OutputString(response.ResponseJSON) return 0 diff --git a/plugins/testdata/fake-subsonicapi-plugin/nd_host_subsonicapi.go b/plugins/testdata/fake-subsonicapi-plugin/nd_host_subsonicapi.go index ec69b718d..1d7be2f61 100644 --- a/plugins/testdata/fake-subsonicapi-plugin/nd_host_subsonicapi.go +++ b/plugins/testdata/fake-subsonicapi-plugin/nd_host_subsonicapi.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -59,5 +60,10 @@ func SubsonicAPICall(uri string) (*SubsonicAPICallResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/testdata/fake-websocket/main.go b/plugins/testdata/fake-websocket/main.go index 7508b8ef2..2dc15fae9 100644 --- a/plugins/testdata/fake-websocket/main.go +++ b/plugins/testdata/fake-websocket/main.go @@ -81,28 +81,20 @@ func ndWebSocketOnTextMessage() int32 { switch input.Message { case "echo": - resp, err := WebSocketSendText(input.ConnectionID, "echo:"+input.Message) + _, err := WebSocketSendText(input.ConnectionID, "echo:"+input.Message) if err != nil { errStr := err.Error() pdk.OutputJSON(OnTextMessageOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(OnTextMessageOutput{Error: &resp.Error}) - return 0 - } case "close": - resp, err := WebSocketCloseConnection(input.ConnectionID, 1000, "closed by plugin") + _, err := WebSocketCloseConnection(input.ConnectionID, 1000, "closed by plugin") if err != nil { errStr := err.Error() pdk.OutputJSON(OnTextMessageOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(OnTextMessageOutput{Error: &resp.Error}) - return 0 - } case "fail": errStr := "intentional test failure" diff --git a/plugins/testdata/fake-websocket/nd_host_websocket.go b/plugins/testdata/fake-websocket/nd_host_websocket.go index e6daea765..39d15c3b1 100644 --- a/plugins/testdata/fake-websocket/nd_host_websocket.go +++ b/plugins/testdata/fake-websocket/nd_host_websocket.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -120,6 +121,11 @@ func WebSocketConnect(url string, headers map[string]string, connectionID string return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -157,6 +163,11 @@ func WebSocketSendText(connectionID string, message string) (*WebSocketSendTextR return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -194,6 +205,11 @@ func WebSocketSendBinary(connectionID string, data []byte) (*WebSocketSendBinary return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -233,5 +249,10 @@ func WebSocketCloseConnection(connectionID string, code int32, reason string) (* return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } diff --git a/plugins/testdata/fake_cache_plugin/main.go b/plugins/testdata/fake_cache_plugin/main.go index 5e14bc933..4dc5f1ea4 100644 --- a/plugins/testdata/fake_cache_plugin/main.go +++ b/plugins/testdata/fake_cache_plugin/main.go @@ -81,16 +81,12 @@ func ndTestCache() int32 { switch input.Operation { case "set_string": - resp, err := CacheSetString(input.Key, input.StringVal, input.TTLSeconds) + _, err := CacheSetString(input.Key, input.StringVal, input.TTLSeconds) if err != nil { errStr := err.Error() pdk.OutputJSON(TestCacheOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(TestCacheOutput{Error: &resp.Error}) - return 0 - } pdk.OutputJSON(TestCacheOutput{}) return 0 @@ -101,24 +97,16 @@ func ndTestCache() int32 { pdk.OutputJSON(TestCacheOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(TestCacheOutput{Error: &resp.Error}) - return 0 - } pdk.OutputJSON(TestCacheOutput{StringVal: resp.Value, Exists: resp.Exists}) return 0 case "set_int": - resp, err := CacheSetInt(input.Key, input.IntVal, input.TTLSeconds) + _, err := CacheSetInt(input.Key, input.IntVal, input.TTLSeconds) if err != nil { errStr := err.Error() pdk.OutputJSON(TestCacheOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(TestCacheOutput{Error: &resp.Error}) - return 0 - } pdk.OutputJSON(TestCacheOutput{}) return 0 @@ -129,24 +117,16 @@ func ndTestCache() int32 { pdk.OutputJSON(TestCacheOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(TestCacheOutput{Error: &resp.Error}) - return 0 - } pdk.OutputJSON(TestCacheOutput{IntVal: resp.Value, Exists: resp.Exists}) return 0 case "set_float": - resp, err := CacheSetFloat(input.Key, input.FloatVal, input.TTLSeconds) + _, err := CacheSetFloat(input.Key, input.FloatVal, input.TTLSeconds) if err != nil { errStr := err.Error() pdk.OutputJSON(TestCacheOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(TestCacheOutput{Error: &resp.Error}) - return 0 - } pdk.OutputJSON(TestCacheOutput{}) return 0 @@ -157,24 +137,16 @@ func ndTestCache() int32 { pdk.OutputJSON(TestCacheOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(TestCacheOutput{Error: &resp.Error}) - return 0 - } pdk.OutputJSON(TestCacheOutput{FloatVal: resp.Value, Exists: resp.Exists}) return 0 case "set_bytes": - resp, err := CacheSetBytes(input.Key, input.BytesVal, input.TTLSeconds) + _, err := CacheSetBytes(input.Key, input.BytesVal, input.TTLSeconds) if err != nil { errStr := err.Error() pdk.OutputJSON(TestCacheOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(TestCacheOutput{Error: &resp.Error}) - return 0 - } pdk.OutputJSON(TestCacheOutput{}) return 0 @@ -185,10 +157,6 @@ func ndTestCache() int32 { pdk.OutputJSON(TestCacheOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(TestCacheOutput{Error: &resp.Error}) - return 0 - } pdk.OutputJSON(TestCacheOutput{BytesVal: resp.Value, Exists: resp.Exists}) return 0 @@ -199,24 +167,16 @@ func ndTestCache() int32 { pdk.OutputJSON(TestCacheOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(TestCacheOutput{Error: &resp.Error}) - return 0 - } pdk.OutputJSON(TestCacheOutput{Exists: resp.Exists}) return 0 case "remove": - resp, err := CacheRemove(input.Key) + _, err := CacheRemove(input.Key) if err != nil { errStr := err.Error() pdk.OutputJSON(TestCacheOutput{Error: &errStr}) return 0 } - if resp.Error != "" { - pdk.OutputJSON(TestCacheOutput{Error: &resp.Error}) - return 0 - } pdk.OutputJSON(TestCacheOutput{}) return 0 diff --git a/plugins/testdata/fake_cache_plugin/nd_host_cache.go b/plugins/testdata/fake_cache_plugin/nd_host_cache.go index 36be869ae..81dbfa229 100644 --- a/plugins/testdata/fake_cache_plugin/nd_host_cache.go +++ b/plugins/testdata/fake_cache_plugin/nd_host_cache.go @@ -9,6 +9,7 @@ package main import ( "encoding/json" + "errors" "github.com/extism/go-pdk" ) @@ -216,6 +217,11 @@ func CacheSetString(key string, value string, ttlSeconds int64) (*CacheSetString return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -252,6 +258,11 @@ func CacheGetString(key string) (*CacheGetStringResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -291,6 +302,11 @@ func CacheSetInt(key string, value int64, ttlSeconds int64) (*CacheSetIntRespons return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -327,6 +343,11 @@ func CacheGetInt(key string) (*CacheGetIntResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -366,6 +387,11 @@ func CacheSetFloat(key string, value float64, ttlSeconds int64) (*CacheSetFloatR return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -402,6 +428,11 @@ func CacheGetFloat(key string) (*CacheGetFloatResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -441,6 +472,11 @@ func CacheSetBytes(key string, value []byte, ttlSeconds int64) (*CacheSetBytesRe return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -477,6 +513,11 @@ func CacheGetBytes(key string) (*CacheGetBytesResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -512,6 +553,11 @@ func CacheHas(key string) (*CacheHasResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil } @@ -547,5 +593,10 @@ func CacheRemove(key string) (*CacheRemoveResponse, error) { return nil, err } + // Convert Error field to Go error + if response.Error != "" { + return nil, errors.New(response.Error) + } + return &response, nil }