Skip to content

Commit 2a72769

Browse files
committed
updates cancel call to stripe; updates subscription renewal end time
1 parent 05d242c commit 2a72769

2 files changed

Lines changed: 43 additions & 10 deletions

File tree

controller/network_controller.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,6 @@ func NetworkRemove(session *session.ClientSession) (*NetworkRemoveResult, error)
208208
&session.ByJwt.UserId,
209209
)
210210

211-
glog.Infof("NetworkRemove success: %v, userAuths: %v", success, userAuths)
212-
213211
if success {
214212
server.Tx(session.Ctx, func(tx server.PgTx) {
215213
for userAuth, _ := range userAuths {

controller/subscription_stripe_controller.go

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -756,8 +756,6 @@ func StripeCreateCustomerPortal(
756756

757757
func UnsubscribeStripe(session *session.ClientSession) error {
758758

759-
glog.Infof("[unsubscribe] Unsubscribing from Stripe for network %s", session.ByJwt.NetworkId)
760-
761759
var subscriptionRenewals []struct {
762760
TransactionId string
763761
EndTime time.Time
@@ -810,8 +808,6 @@ func UnsubscribeStripe(session *session.ClientSession) error {
810808
EndTime: endTime,
811809
})
812810

813-
glog.Infof("[unsubscribe] Found active subscription renewal with transaction id: %s and end time: %s", txId, endTime.String())
814-
815811
}
816812
})
817813

@@ -822,7 +818,6 @@ func UnsubscribeStripe(session *session.ClientSession) error {
822818
}
823819

824820
if len(subscriptionRenewals) == 0 {
825-
glog.Infof("[unsubscribe] No active Stripe subscriptions found for network %s", session.ByJwt.NetworkId)
826821
return nil
827822
}
828823

@@ -866,18 +861,58 @@ func UnsubscribeStripe(session *session.ClientSession) error {
866861
// Cancel the subscription
867862
glog.Infof("[unsubscribe] Canceling Stripe subscription %s for network %s", subscriptionId, session.ByJwt.NetworkId)
868863

869-
params := &stripe.SubscriptionCancelParams{}
870-
_, err = subscription.Cancel(subscriptionId, params)
864+
cancelUrl := fmt.Sprintf("https://api.stripe.com/v1/subscriptions/%s", subscriptionId)
865+
866+
req, err := http.NewRequestWithContext(session.Ctx, "DELETE", cancelUrl, nil)
867+
if err != nil {
868+
glog.Errorf("[unsubscribe] Failed to create cancel request for subscription %s: %v", subscriptionId, err)
869+
continue
870+
}
871+
872+
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", stripeApiToken()))
871873

874+
httpClient := server.DefaultHttpClient()
875+
resp, err := httpClient.Do(req)
872876
if err != nil {
873877
glog.Errorf("[unsubscribe] Failed to cancel Stripe subscription %s: %v", subscriptionId, err)
874-
// Continue to try other subscriptions even if one fails
878+
continue
879+
}
880+
defer resp.Body.Close()
881+
882+
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
883+
glog.Errorf("[unsubscribe] Stripe API returned error status %d for subscription %s", resp.StatusCode, subscriptionId)
875884
continue
876885
}
877886

878887
glog.Infof("[unsubscribe] Successfully canceled Stripe subscription %s", subscriptionId)
879888

880889
}
881890

891+
// set subscription_renewal end time as now for all active subscriptions
892+
// to prevent transfer balance from being unnecessarily added
893+
server.Tx(session.Ctx, func(tx server.PgTx) {
894+
895+
_, err := tx.Exec(
896+
session.Ctx,
897+
`
898+
UPDATE subscription_renewal
899+
SET end_time = $1
900+
WHERE
901+
network_id = $2
902+
AND market = $3
903+
AND end_time > $4
904+
`,
905+
server.NowUtc(),
906+
session.ByJwt.NetworkId,
907+
model.SubscriptionMarketStripe,
908+
server.NowUtc(),
909+
)
910+
911+
if err != nil {
912+
glog.Errorf("[unsubscribe] Failed to update subscription_renewal end times: %v", err)
913+
}
914+
915+
})
916+
882917
return nil
883918
}

0 commit comments

Comments
 (0)