Skip to content

Commit a72ddab

Browse files
committed
fix(backend): fix logic for removing readers that are not in the api response (#8)
1 parent 97ffc13 commit a72ddab

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

backend/libs/sumup.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,20 @@ func InitAPIReaders() {
5050
return
5151
}
5252

53-
var r []sumupmodels.Reader
54-
5553
var rIds []string
5654
for _, v := range response.Items {
5755
rIds = append(rIds, string(v.Id))
5856
}
5957

6058
// do not delete and only update existing readers that are still in api response,
6159
// delete the readers not in api response. add the new ones.
62-
deletedReadersCount := models.DB.Not("reader_id IN (?)", rIds).Delete(&r).RowsAffected
60+
var deletedReadersCount int64
61+
if len(rIds) > 0 {
62+
deletedReadersCount = models.DB.Where("reader_id NOT IN (?)", rIds).Delete(&sumupmodels.Reader{}).RowsAffected
63+
} else {
64+
// if no readers in api response, delete all readers
65+
deletedReadersCount = models.DB.Delete(&sumupmodels.Reader{}, "1=1").RowsAffected
66+
}
6367
if deletedReadersCount > 0 {
6468
fmt.Printf("[INFO] SumUp API: Deleted %d reader(s).\n", deletedReadersCount)
6569
}
@@ -78,7 +82,7 @@ func StartReaderCheckout(ReaderId string, TotalAmount uint, Description *string)
7882
returnUrl := os.Getenv("SUMUP_RETURN_URL")
7983
response, checkoutErr := SumupClient.Readers.CreateCheckout(context.Background(), *SumupAccount.MerchantProfile.MerchantCode, ReaderId, readers.CreateReaderCheckoutBody{Description: Description, ReturnUrl: &returnUrl, TotalAmount: readers.CreateReaderCheckoutAmount{Currency: "EUR", MinorUnit: 2, Value: int(TotalAmount)}})
8084
if checkoutErr != nil {
81-
return "error", fmt.Errorf(checkoutErr.Error())
85+
return "error", fmt.Errorf("%s", checkoutErr.Error())
8286
}
8387
return *response.Data.ClientTransactionId, nil
8488
}

0 commit comments

Comments
 (0)