Просмотр исходного кода

fix: return an error if the secret is not found

Signed-off-by: Gergely Brautigam <182850+Skarlso@users.noreply.github.com>
Gergely Brautigam 1 год назад
Родитель
Сommit
331c727b11
1 измененных файлов с 13 добавлено и 7 удалено
  1. 13 7
      pkg/provider/infisical/api/api.go

+ 13 - 7
pkg/provider/infisical/api/api.go

@@ -218,7 +218,8 @@ func (a *InfisicalClient) GetSecretByKeyV3(data GetSecretByKeyV3Request) (string
 	if err != nil {
 		return "", err
 	}
-	if rawRes.StatusCode == 400 {
+
+	if rawRes.StatusCode == 400 || rawRes.StatusCode == 404 || rawRes.StatusCode == 500 {
 		var errRes InfisicalAPIErrorResponse
 		err = ReadAndUnmarshal(rawRes, &errRes)
 		if err != nil {
@@ -248,12 +249,17 @@ func MarshalReqBody(data any) (*bytes.Reader, error) {
 	return bytes.NewReader(body), nil
 }
 
-func ReadAndUnmarshal(resp *http.Response, target any) error {
-	var buf bytes.Buffer
-	defer resp.Body.Close()
-	_, err := buf.ReadFrom(resp.Body)
-	if err != nil {
+func ReadAndUnmarshal(resp *http.Response, target any) (err error) {
+	defer func() {
+		if cerr := resp.Body.Close(); cerr != nil {
+			err = errors.Join(err, cerr)
+		}
+	}()
+
+	decoder := json.NewDecoder(resp.Body)
+	if err := decoder.Decode(target); err != nil {
 		return err
 	}
-	return json.Unmarshal(buf.Bytes(), target)
+
+	return nil
 }