Compare commits

..
3 Commits
2 changed files with 24 additions and 26 deletions
+7 -9
View File
@@ -107,18 +107,16 @@ func NewConnection() *GraphQL {
panic("Invalid value for RETRIES_ENABLE")
}
retriesNumber, retriesNumberExists := os.LookupEnv("RETRIES_NUMBER")
if !retriesNumberExists {
panic("RETRIES_NUMBER environment variable is not set but RETRIES_ENABLE is")
}
g.RetriesNumber, err = strconv.Atoi(retriesNumber)
if err != nil {
panic("Invalid value for RETRIES_NUMBER")
if retriesNumberExists {
g.RetriesNumber, err = strconv.Atoi(retriesNumber)
if err != nil {
panic("Invalid value for RETRIES_NUMBER")
}
}
retriesDelay, retriesDelayExists := os.LookupEnv("RETRIES_DELAY")
if !retriesDelayExists {
panic("RETRIES_DELAY environment variable is not set but RETRIES_ENABLE is")
if retriesDelayExists {
g.RetriesDelay, err = strconv.Atoi(retriesDelay)
}
g.RetriesDelay, err = strconv.Atoi(retriesDelay)
}
return &g
}
+17 -17
View File
@@ -79,9 +79,24 @@ func (g *GraphQL) Query(queryContent string, queryVariables interface{}, queryHe
g.Log.Error("Unable to send the query", map[string]interface{}{"_error": err.Error()})
return err
}
if httpResponse.StatusCode >= 200 && httpResponse.StatusCode <= 204 {
if httpResponse.StatusCode <= 200 && httpResponse.StatusCode >= 204 {
return errors.New(fmt.Sprintf("%v", httpResponse.StatusCode))
}
defer io.Copy(ioutil.Discard, httpResponse.Body)
defer httpResponse.Body.Close()
body, err = ioutil.ReadAll(httpResponse.Body)
if err != nil {
g.Log.Critical("Unable to read the response", map[string]interface{}{"_error": err.Error()})
return errors.New(fmt.Sprintf("body parsing %v", httpResponse.StatusCode))
}
err = json.Unmarshal(body, &queryResult)
if err != nil {
g.Log.Error("Unable to unmarshal the query", map[string]interface{}{"_error": err.Error()})
return errors.New(fmt.Sprintf("body unmarshal %v", httpResponse.StatusCode))
}
return nil
},
retry.Attempts(uint(g.RetriesNumber)),
@@ -93,22 +108,7 @@ func (g *GraphQL) Query(queryContent string, queryVariables interface{}, queryHe
),
)
defer io.Copy(ioutil.Discard, httpResponse.Body)
defer httpResponse.Body.Close()
body, err = ioutil.ReadAll(httpResponse.Body)
if err != nil {
g.Log.Critical("Unable to read the response", map[string]interface{}{"_error": err.Error()})
return "", err
}
err = json.Unmarshal(body, &queryResult)
if err != nil {
g.Log.Error("Unable to unmarshal the query", map[string]interface{}{"_error": err.Error()})
return "", err
}
if !pandati.IsZero(queryResult.Errors) {
if !pandati.IsZero(queryResult.Errors) || err != nil {
g.Log.Error("Query returned error", map[string]interface{}{"_query": queryContent, "_variables": queryVariables, "_error": fmt.Sprintf("%v", queryResult.Errors), "_response_code": httpResponse.StatusCode})
return "", fmt.Errorf("%v", queryResult.Errors[0].Message)
}