Stamplay / stamplay-js-sdk

:rocket: JavaScript SDK of Stamplay cloud platform
https://stamplay.com
MIT License
88 stars 18 forks source link

Confusing on transfer SDK V1 to SDK v2. #25

Closed hughred22 closed 8 years ago

hughred22 commented 8 years ago

We will need more code example of updating V1 to V2 SDK. I am running into alot of problem as V1 and V2 has huge different...

First, I have this function to getCurrent user then add stripe customer:

    function getCurrent() {
    var def = $q.defer();

    var user = $stamplay.User().Model;

    user.currentUser()
        .then(function() {
            //send the entire user model back
            if (user.isLogged()) {
                console.log("User Logged in.");

                if (!user.get('stripeCustomerId')) {
                    $stamplay.Stripe().createCustomer(user.get('id')).then(function (sResponse) {
                        console.log ("---Create Stripe User Response----");
                        console.log (sResponse);
                        var saveUser = $stamplay.User().Model;
                        user.set('stripeCustomerId', sResponse.customer_id);
                        user.set('subscriptions', sResponse.subscriptions);
                        if (!user.get('freeTrialExpirationDate')) {
                            var createdDate = moment(user.get('dt_create'));
                            var freeTrialExpirationDate = createdDate.add(10, 'days');
                            user.set('freeTrialExpirationDate', freeTrialExpirationDate);
                        }
                        saveUser.set('stripeCustomerId', user.get('stripeCustomerId'));
                        saveUser.set('subscriptions', user.get('subscriptions'));
                        saveUser.set('freeTrialExpirationDate', user.get('freeTrialExpirationDate'));
                        saveUser.set('_id', user.get('_id'));
                        saveUser.save().then(function() { 
                            def.resolve(user);
                        });
                    })
                } else {
                    def.resolve(user);
                }
            } else {
                console.log("User did not Log in.");
                def.reject("Not yet login...");
            }
        });

    return def.promise;
}

How do I rewrite this code into V2? How to update user info like StripeId... The tutorial on Stripe sub box did not use V2 codes...

Second, I have function like this with V1 code:

  function updateSliderPictures(id, data) {
var def = $q.defer();

// instanticate a new product model from the stamplay js sdk
var slide = new Stamplay.Cobject('sliders').Model;
slide.fetch(id)
  .then(function() {

    var pictures = slide.get("pictures");
    if (!pictures) {
      pictures = [] 
      slide.set("pictures", pictures)
    }
    pictures.push(data);

    return slide.save();
  })
  .then(function() {
    // return the page
    def.resolve(slide);
  }, function(err){
    def.reject(err);
  });

return def.promise;
 }

Can I just update the code as this with the new Push? What about with pictures is null? Will the below code run into null problem. If do, how do I solve this with the new V2 code?

     function updateSliderPictures(id, data) {
var def = $q.defer();

Stamplay.Object('sliders').push(id, "pictures", data)
.then(function(res) {
  // Success
  def.resolve(res);
}, function(err) {
  // Handle Error
  def.reject(err);
});

return def.promise;
 }