@@ -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