Cloud Code

Listing of Cloud Code functions inside Symbyoz engine

Stripe

/**
 * @param  {boolean} liveMode
 * @return Stripe
 */
 
function getStripe(liveMode)
{
    if (liveMode == false && process.env.STRIPE_DEV_KEY !== null) {
        console.log('import Stripe with key : '+process.env.STRIPE_DEV_KEY);
        return require("cloud/node_modules/stripe/lib/stripe.js")(process.env.STRIPE_DEV_KEY);
    } else {
        console.log('import Stripe with key : '+process.env.STRIPE_KEY);
        return require("cloud/node_modules/stripe/lib/stripe.js")(process.env.STRIPE_KEY);
    }
}

/**
 * Create Stripe Charge with customer
 */
 
Parse.Cloud.define("StripeChargeWithCustomer", function(rq, response){
    var user = rq.user;
    if (!user) {
        return response.error('User must be logged');
    }

    var params = rq.params;
    if (!params.amount || !params.currency || !params.customer || !params.description) {
        return response.error("Missing parameters: need amount, currency, customer and description");
    }
    if (!params.livemode) {
        var livemode = false;
    } else {
        var livemode = params.livemode;
    }

    getStripe(livemode).charges.create({
        amount: params.amount,
        currency: params.currency,
        customer: params.customer,
        description: params.description
    }, function(err, charge) {
        if(err) {
            return response.error(err.statusCode, err.raw);
        }

        if (charge.status == 'failed') {
            return response.error('KO');
        } else {
            return response.success('OK');
        }
    });
});

/**
 * Create Stripe Charge with source
 */
Parse.Cloud.define("StripeChargeWithSource", function(rq, response){
    var user = rq.user;
    if (!user) {
        return response.error('User must be logged');
    }

    var params = rq.params;
    if (!params.amount || !params.currency || !params.source || !params.description) {
        return response.error("Missing parameters: need amount, currency, source and description");
    }
    if (!params.livemode) {
        var livemode = false;
    } else {
        var livemode = params.livemode;
    }

    getStripe(livemode).charges.create({
        amount: params.amount,
        currency: params.currency,
        source: params.source,
        description: params.description
    }, function(err, charge) {
        if(err) {
            return response.error(err.statusCode, err.raw);
        }

        if (charge.status == 'failed') {
            return response.error('KO');
        } else {
            return response.success('OK');
        }
    });
});

/**
 * Create Stripe Customer
 */
Parse.Cloud.define("StripeCustomerCreate", function(rq, response){
    var user = rq.user;
    if (!user) {
        return response.error('User must be logged');
    }

    var params = rq.params;
    if (!params.email || !params.source) {
        return response.error("Missing parameters: need email, source");
    }
    if (!params.livemode) {
        var livemode = false;
    } else {
        var livemode = params.livemode;
    }

    getStripe(livemode).customers.create({
        email: params.email,
        source: params.source,
    }, function(err, customer) {
        if(err) {
            return response.error(err.statusCode, err.raw);
        }
        return response.success(customer.id);
    });
});

SMS by AWS SNS

SMS by SMSPartner

Push-Notification to Channel

Send Email with MailGun

Last updated

Was this helpful?