From cc661f39360aed3c8935ada6cc4c6d1c477f7519 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Mur=C3=A9?= Date: Wed, 22 Jan 2025 17:28:37 +0100 Subject: [PATCH] infura requester: properly handle failure --- toolkit/client/requester_infura.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/toolkit/client/requester_infura.go b/toolkit/client/requester_infura.go index cae67a3..b60f64b 100644 --- a/toolkit/client/requester_infura.go +++ b/toolkit/client/requester_infura.go @@ -6,6 +6,7 @@ import ( "encoding/base64" "encoding/json" "fmt" + "io" "iter" "net/http" "net/url" @@ -21,8 +22,9 @@ type InfuraRequester struct { baseURL string } -// dev: http://ucan-issuer-api.commercial-dev.eks-dev.infura.org/ -// prod: +// NewInfuraRequester create a requester client for the Infura UCAN token issuer. +// dev: http://ucan-issuer-api.commercial-dev.eks-dev.infura.org +// prod: http://ucan-issuer-api.commercial-prod.eks.infura.org func NewInfuraRequester(baseURL string) *InfuraRequester { return &InfuraRequester{baseURL: baseURL} } @@ -55,6 +57,13 @@ func (i InfuraRequester) RequestDelegation(ctx context.Context, audience did.DID if err != nil { return nil, err } + if res.StatusCode != http.StatusOK { + msg, err := io.ReadAll(res.Body) + if err != nil { + return nil, fmt.Errorf("request failed with status %d, then failed to read response body: %w", res.StatusCode, err) + } + return nil, fmt.Errorf("request failed with status %d: %s", res.StatusCode, msg) + } resp := struct { Cid string `json:"cid"`