summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-02-01 22:02:52 -0500
committerJules Laplace <jules@okfoc.us>2015-02-01 22:02:52 -0500
commita5c5fa85c85fc31bebae1917ceeac4f8e1e383d5 (patch)
tree36c1b31a7d06fce061b1e6b2f4251c81a0393ac1
parent7a23f57b1ef3e9ceca414d909aa15a7d5ea6d536 (diff)
talking to recurly
-rw-r--r--package.json2
-rw-r--r--public/assets/javascripts/ui/site/EditSubscriptionModal.js1
-rw-r--r--server/lib/api/subscription.js32
3 files changed, 27 insertions, 8 deletions
diff --git a/package.json b/package.json
index e89fcd9..56ffcdf 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,7 @@
"mongoose-unique-validator": "~0.3.0",
"monk": "~0.7.1",
"multer": "~0.1.0",
- "node-recurly": "^2.1.0",
+ "node-recurly": "julescarbon/node-recurly",
"node-restful": "~0.1.14",
"passport": "~0.2.0",
"passport-facebook": "~1.0.3",
diff --git a/public/assets/javascripts/ui/site/EditSubscriptionModal.js b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
index 3bc1a24..55ff3b5 100644
--- a/public/assets/javascripts/ui/site/EditSubscriptionModal.js
+++ b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
@@ -262,7 +262,6 @@ var EditSubscriptionModal = ModalView.extend({
type: "put",
data: data,
success: function(data){
- console.log("SUCCESS")
this.$gear.removeClass("turning")
}.bind(this)
})
diff --git a/server/lib/api/subscription.js b/server/lib/api/subscription.js
index 362d633..7e9221a 100644
--- a/server/lib/api/subscription.js
+++ b/server/lib/api/subscription.js
@@ -137,13 +137,20 @@ var subscription = module.exports = {
return res.json({ error: "bad input" })
}
var subscriber = req.subscription
+ var user = req.user
var plan_type = req.body.plan_type
- var basic_layouts = Math.max(0, parseInt(req.body.basic_layouts, 10))
- var pro_layouts = Math.max(0, parseInt(req.body.pro_layouts, 10))
+ var basic_layouts = Math.max(0, parseInt(req.body.basic_layouts || 0, 10))
+ var pro_layouts = Math.max(0, parseInt(req.body.pro_layouts || 0, 10))
+
+ if (plan_type == subscription.plan_type
+ && basic_layouts == subscriber.basic_layouts
+ && pro_layouts == subscriber.pro_layouts) {
+ return res.json(subscriber)
+ }
var data = {}
- data.plan_code = plan_type + "_monthly"
+ data.plan_code = plan_type + "-monthly"
data.subscription_add_ons = []
if (plan_levels[plan_type] > 0) {
@@ -158,8 +165,21 @@ var subscription = module.exports = {
// data.subscription_add_ons = []
// add_on.add_on_code
// add_on.quantity
- recurly.subscriptions.update(subscriber.uuid, data, function(){
- return res.json(subscriber)
+ recurly.subscriptions.update(subscriber.uuid, data, function(err, data){
+ if (err) {
+ console.log("error updating recurly subscription", err)
+ return res.json({ error: err })
+ }
+ subscriber.plan_type = plan_type
+ subscriber.basic_layouts = basic_layouts
+ subscriber.pro_layouts = pro_layouts
+ subscriber.save(function(){
+ user.plan_level = plan_levels[plan_type]
+ user.plan_type = plan_type
+ user.save(function(){
+ return res.json(subscriber)
+ })
+ })
})
},
@@ -169,7 +189,7 @@ var subscription = module.exports = {
}
var subscriber = req.subscription
- recurly.subscriptions.terminate(subscriber.uuid, "partial", function(){
+ recurly.subscriptions.terminate(subscriber.uuid, "partial", function(err, data){
subscriber.remove(function(){
req.user.plan_code = 0
req.user.plan_type = "free"