mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
WIP: fix up error handling and account for possibility of account already existing.
This commit is contained in:
parent
249381b6a8
commit
56bc840b88
1 changed files with 43 additions and 6 deletions
|
@ -12,7 +12,32 @@ module.exports = RecurlyWrapper =
|
|||
_createPaypalSubscription: (user, subscriptionDetails, recurly_token_id, callback) ->
|
||||
logger.log {user_id: user._id, recurly_token_id}, "starting process of creating paypal subscription"
|
||||
Async.waterfall([
|
||||
(next) -> # create account
|
||||
(next) -> # check if account exists
|
||||
logger.log {user_id: user._id, recurly_token_id}, "checking if recurly account exists for user"
|
||||
RecurlyWrapper.apiRequest({
|
||||
url: "accounts/#{user._id}"
|
||||
method: "GET"
|
||||
}, (error, response, responseBody) ->
|
||||
if error
|
||||
logger.error {error, user_id: user._id, recurly_token_id}, "error response from recurly while checking account"
|
||||
return next(error)
|
||||
result = {userExists: true}
|
||||
if response.statusCode == 404
|
||||
result.userExists = false
|
||||
return next(null, result)
|
||||
logger.log {user_id: user._id, recurly_token_id}, "user appears to exist in recurly"
|
||||
RecurlyWrapper._parseAccountXml responseBody, (err, account) ->
|
||||
if err
|
||||
logger.error {err, user_id: user._id, recurly_token_id}, "error parsing account"
|
||||
return next(err)
|
||||
result.account = account
|
||||
return next(null, result)
|
||||
)
|
||||
|
||||
, (result, next) -> # create account
|
||||
if !result.userExists
|
||||
logger.log {user_id: user._id, recurly_token_id}, "user already exists in recurly"
|
||||
return next(null, result)
|
||||
logger.log {user_id: user._id, recurly_token_id}, "creating user in recurly"
|
||||
address = subscriptionDetails.address
|
||||
if !address
|
||||
|
@ -38,14 +63,17 @@ module.exports = RecurlyWrapper =
|
|||
method : "POST"
|
||||
body : requestBody
|
||||
}, (error, response, responseBody) =>
|
||||
return next(error) if error?
|
||||
if error
|
||||
logger.error {error, user_id: user._id, recurly_token_id}, "error response from recurly while creating account"
|
||||
return next(error)
|
||||
RecurlyWrapper._parseAccountXml responseBody, (err, account) ->
|
||||
if err
|
||||
logger.error {err, user_id: user._id, recurly_token_id}, "error creating account"
|
||||
return next(err)
|
||||
result = {account}
|
||||
result.account = account
|
||||
return next(null, result)
|
||||
)
|
||||
|
||||
, (result, next) -> # create billing info
|
||||
logger.log {user_id: user._id, recurly_token_id}, "creating billing info in recurly"
|
||||
accountCode = result?.account?.account_code
|
||||
|
@ -61,7 +89,9 @@ module.exports = RecurlyWrapper =
|
|||
method: "POST"
|
||||
body: requestBody
|
||||
}, (error, response, responseBody) =>
|
||||
return next(error) if error?
|
||||
if error
|
||||
logger.error {error, user_id: user._id, recurly_token_id}, "error response from recurly while creating billing info"
|
||||
return next(error)
|
||||
RecurlyWrapper._parseBillingInfoXml responseBody, (err, billingInfo) ->
|
||||
if err
|
||||
logger.error {err, user_id: user._id, accountCode, recurly_token_id}, "error creating billing info"
|
||||
|
@ -69,6 +99,7 @@ module.exports = RecurlyWrapper =
|
|||
result.billingInfo = billingInfo
|
||||
return next(null, result)
|
||||
)
|
||||
|
||||
, (result, next) -> # set address
|
||||
logger.log {user_id: user._id, recurly_token_id}, "setting billing address in recurly"
|
||||
accountCode = result?.account?.account_code
|
||||
|
@ -92,7 +123,9 @@ module.exports = RecurlyWrapper =
|
|||
method: "PUT"
|
||||
body: requestBody
|
||||
}, (error, response, responseBody) =>
|
||||
return next(error) if error?
|
||||
if error
|
||||
logger.error {error, user_id: user._id, recurly_token_id}, "error response from recurly while setting address"
|
||||
return next(error)
|
||||
RecurlyWrapper._parseBillingInfoXml responseBody, (err, billingInfo) ->
|
||||
if err
|
||||
logger.error {err, user_id: user._id, recurly_token_id}, "error updating billing info"
|
||||
|
@ -100,6 +133,7 @@ module.exports = RecurlyWrapper =
|
|||
result.billingInfo = billingInfo
|
||||
return next(null, result)
|
||||
)
|
||||
|
||||
, (result, next) -> # create subscription
|
||||
logger.log {user_id: user._id, recurly_token_id}, "creating subscription in recurly"
|
||||
requestBody = """
|
||||
|
@ -117,7 +151,9 @@ module.exports = RecurlyWrapper =
|
|||
method : "POST"
|
||||
body : requestBody
|
||||
}, (error, response, responseBody) =>
|
||||
return next(error) if error?
|
||||
if error
|
||||
logger.error {error, user_id: user._id, recurly_token_id}, "error response from recurly while creating subscription"
|
||||
return next(error)
|
||||
RecurlyWrapper._parseSubscriptionXml responseBody, (err, subscription) ->
|
||||
if err
|
||||
logger.error {err, user_id: user._id, recurly_token_id}, "error creating subscription"
|
||||
|
@ -125,6 +161,7 @@ module.exports = RecurlyWrapper =
|
|||
result.subscription = subscription
|
||||
return next(null, result)
|
||||
)
|
||||
|
||||
], (err, result) ->
|
||||
if err
|
||||
logger.error {err, user_id: user._id, recurly_token_id}, "error in paypal subscription creation process"
|
||||
|
|
Loading…
Reference in a new issue