Skip to content

Instantly share code, notes, and snippets.

@ryanbelke
Created May 3, 2020 19:56
Show Gist options
  • Select an option

  • Save ryanbelke/7e79c48ce077789d6bd8114ac5bdb15c to your computer and use it in GitHub Desktop.

Select an option

Save ryanbelke/7e79c48ce077789d6bd8114ac5bdb15c to your computer and use it in GitHub Desktop.
/backend/api/order/controllers/order.js
"use strict";
/**
* Order.js controller
*
* @description: A set of functions called "actions" for managing `Order`.
*/
// INSERT STRIPE SECRET TEST KEY FROM YOUR STIPE DASHBOARD
// STRIPE.COM -> TEST DATA -> DEVELOPERS
const stripe = require("stripe")("INSERT YOUR STRIPE SECRET KEY HERE);
module.exports = {
/**
* Create a/an order record.
*
* @return {Object}
*/
create: async (ctx) => {
const { address, amount, dishes, token, city, state } = JSON.parse(
ctx.request.body
);
// charge on stripe
const charge = await stripe.charges.create({
// Transform cents to dollars.
amount: amount * 100,
currency: "usd",
description: `Order ${new Date()} by ${ctx.state.user._id}`,
source: token,
});
// Register the order in the database
const order = await strapi.services.order.create({
user: ctx.state.user.id,
charge_id: charge.id,
address,
amount,
dishes,
city,
state,
});
return order;
},
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment