Răsfoiți Sursa

if Recurly error, parse body xml rather than using regex match

Shane Kilkelly 9 ani în urmă
părinte
comite
a5d2183441

+ 9 - 4
services/web/app/coffee/Features/Subscription/RecurlyWrapper.coffee

@@ -418,10 +418,15 @@ module.exports = RecurlyWrapper =
 			url: "subscriptions/#{subscriptionId}/cancel",
 			url: "subscriptions/#{subscriptionId}/cancel",
 			method: "put"
 			method: "put"
 		}, (error, response, body) ->
 		}, (error, response, body) ->
-			if error? and body?.match(/.*A canceled subscription can't transition to canceled.*/)
-				logger.log {subscriptionId, error, body}, "subscription already cancelled, not really an error, proceeding"
-				error = null
-			callback(error)
+			if error?
+				RecurlyWrapper._parseXml body, (_err, parsed) ->
+					if parsed?.error?.description == "A canceled subscription can't transition to canceled"
+						logger.log {subscriptionId, error, body}, "subscription already cancelled, not really an error, proceeding"
+						callback(null)
+					else
+						callback(error)
+			else
+				callback(null)
 		)
 		)
 
 
 	reactivateSubscription: (subscriptionId, callback) ->
 	reactivateSubscription: (subscriptionId, callback) ->