Skip to content

Commit 672ba2e

Browse files
authored
Hotfix-getDataFromAPI (#951)
* Changed numm of retry attempts * removed redundant retry attempts * corrected tests
1 parent 2c83609 commit 672ba2e

File tree

4 files changed

+7
-18
lines changed

4 files changed

+7
-18
lines changed

utils/api.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package utils
33
import (
44
"errors"
55
"net/http"
6-
"razor/core"
76
"time"
87

98
"github.com/PaesslerAG/jsonpath"
@@ -24,14 +23,15 @@ func (*UtilsStruct) GetDataFromAPI(url string) ([]byte, error) {
2423
}
2524
defer response.Body.Close()
2625
if response.StatusCode != 200 {
26+
log.Errorf("API: %s responded with status code %d", url, response.StatusCode)
2727
return errors.New("unable to reach API")
2828
}
2929
body, err = IOInterface.ReadAll(response.Body)
3030
if err != nil {
3131
return err
3232
}
3333
return nil
34-
}, RetryInterface.RetryAttempts(core.MaxRetries))
34+
}, retry.Attempts(2), retry.Delay(time.Second*2))
3535
if err != nil {
3636
return nil, err
3737
}

utils/api_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package utils
22

33
import (
44
"errors"
5-
"github.com/avast/retry-go"
65
"github.com/stretchr/testify/mock"
76
"razor/utils/mocks"
87
"reflect"
@@ -88,19 +87,16 @@ func TestGetDataFromAPI(t *testing.T) {
8887
}
8988
for _, tt := range tests {
9089
t.Run(tt.name, func(t *testing.T) {
91-
retryMock := new(mocks.RetryUtils)
9290
utilsMock := new(mocks.Utils)
9391
ioMock := new(mocks.IOUtils)
9492

9593
optionsPackageStruct := OptionsPackageStruct{
96-
RetryInterface: retryMock,
9794
UtilsInterface: utilsMock,
9895
IOInterface: ioMock,
9996
}
10097
utils := StartRazor(optionsPackageStruct)
10198

10299
ioMock.On("ReadAll", mock.Anything).Return(tt.args.body, tt.args.bodyErr)
103-
retryMock.On("RetryAttempts", mock.AnythingOfType("uint")).Return(retry.Attempts(1))
104100

105101
got, err := utils.GetDataFromAPI(tt.args.url)
106102
if (err != nil) != tt.wantErr {

utils/asset.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -273,15 +273,11 @@ func (*UtilsStruct) GetDataToCommitFromJob(job bindings.StructsJob) (*big.Int, e
273273
// Fetch data from API with retry mechanism
274274
var parsedData interface{}
275275
if job.SelectorType == 0 {
276-
apiErr = retry.Do(
277-
func() error {
278-
response, apiErr = UtilsInterface.GetDataFromAPI(job.Url)
279-
if apiErr != nil {
280-
log.Error("Error in fetching data from API: ", apiErr)
281-
return apiErr
282-
}
283-
return nil
284-
}, RetryInterface.RetryAttempts(core.MaxRetries))
276+
response, apiErr = UtilsInterface.GetDataFromAPI(job.Url)
277+
if apiErr != nil {
278+
log.Error("Error in fetching data from API: ", apiErr)
279+
return nil, apiErr
280+
}
285281

286282
err := json.Unmarshal(response, &parsedJSON)
287283
if err != nil {

utils/asset_test.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -778,17 +778,14 @@ func TestGetDataToCommitFromJob(t *testing.T) {
778778
}
779779
for _, tt := range tests {
780780
t.Run(tt.name, func(t *testing.T) {
781-
retryMock := new(mocks.RetryUtils)
782781
utilsMock := new(mocks.Utils)
783782

784783
optionsPackageStruct := OptionsPackageStruct{
785-
RetryInterface: retryMock,
786784
UtilsInterface: utilsMock,
787785
}
788786
utils := StartRazor(optionsPackageStruct)
789787

790788
utilsMock.On("GetDataFromAPI", mock.AnythingOfType("string")).Return(tt.args.response, tt.args.responseErr)
791-
retryMock.On("RetryAttempts", mock.AnythingOfType("uint")).Return(retry.Attempts(1))
792789
utilsMock.On("GetDataFromJSON", mock.Anything, mock.AnythingOfType("string")).Return(tt.args.parsedData, tt.args.parsedDataErr)
793790
utilsMock.On("GetDataFromXHTML", mock.AnythingOfType("string"), mock.AnythingOfType("string")).Return(tt.args.dataPoint, tt.args.dataPointErr)
794791
utilsMock.On("ConvertToNumber", mock.Anything).Return(tt.args.datum, tt.args.datumErr)

0 commit comments

Comments
 (0)