From d7cefd3add1767d335ec0637ee901128cd22df58 Mon Sep 17 00:00:00 2001
From: Bernardo Cardoso <bernardo@xx.network>
Date: Fri, 27 Sep 2024 14:13:19 +0000
Subject: [PATCH] Fix SingleUseResponseReport: make error a string for correct
 JSON

---
 bindings/single.go      | 8 ++++++--
 bindings/single_test.go | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/bindings/single.go b/bindings/single.go
index bebd9024c..f61972020 100644
--- a/bindings/single.go
+++ b/bindings/single.go
@@ -135,7 +135,7 @@ type SingleUseResponseReport struct {
 	Payload     []byte
 	ReceptionID *id.ID
 	EphID       int64
-	Err         error
+	Err         string
 }
 
 // SingleUseCallbackReport is the bindings-layer struct used to represent
@@ -261,13 +261,17 @@ func (sr singleUseResponse) Callback(payload []byte,
 	if len(rids) > 0 {
 		roundURL = getRoundURL(rids[0])
 	}
+	errString := ""
+	if err != nil {
+		errString = err.Error()
+	}
 	sendReport := SingleUseResponseReport{
 		RoundsList:  makeRoundsList(rids...),
 		RoundURL:    roundURL,
 		ReceptionID: receptionID.Source,
 		EphID:       receptionID.EphId.Int64(),
 		Payload:     payload,
-		Err:         err,
+		Err:         errString,
 	}
 	sr.response.Callback(json.Marshal(&sendReport))
 }
diff --git a/bindings/single_test.go b/bindings/single_test.go
index b49503819..212ed5c92 100644
--- a/bindings/single_test.go
+++ b/bindings/single_test.go
@@ -50,7 +50,7 @@ func TestSingleUseJsonMarshals(t *testing.T) {
 		Payload:     payload,
 		ReceptionID: ephId.Source,
 		EphID:       ephId.EphId.Int64(),
-		Err:         nil,
+		Err:         "",
 	}
 	rrm, err := json.Marshal(responseReport)
 	if err != nil {
-- 
GitLab