diff --git a/.gitignore b/.gitignore index 28f1ba7..00a730f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules -.DS_Store \ No newline at end of file +.DS_Store +.idea/ \ No newline at end of file diff --git a/config/config.json b/config/config.json index 81c88d8..464d3ef 100644 --- a/config/config.json +++ b/config/config.json @@ -18,5 +18,8 @@ "production": { "use_env_variable": "JAWSDB_URL", "dialect": "mysql" + }, + "stripe": { + "secret": "sk_test_bZW5BqNybsg5V1bHDoij1xyz" } } diff --git a/package-lock.json b/package-lock.json index 2e5efbe..ab41054 100644 --- a/package-lock.json +++ b/package-lock.json @@ -172,7 +172,7 @@ "dependencies": { "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { @@ -639,7 +639,7 @@ }, "eslint": { "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { @@ -934,7 +934,7 @@ }, "external-editor": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { diff --git a/routes/apiRoutes-stripe.js b/routes/apiRoutes-stripe.js index 3e8d9a0..7519afe 100644 --- a/routes/apiRoutes-stripe.js +++ b/routes/apiRoutes-stripe.js @@ -1,39 +1,33 @@ -var stripe = require("stripe")("pk_test_3kQuYbD9iDbwfdk6squr49KV"); - -// module.exports = function (app) { - -// app.post("/charge", function(req, res) { -// const token = req.body.stripeToken; -// stripe.charges.create({ -// amount: req.body.amount, -// currency: req.body.currency, -// description: req.body.description, -// source: token, -// }).then(function (data) { - -// res.json(data); -// }); -// }); -// }; - -// var stripe = require("stripe")("sk_test_4eC39HqLyjWDarjtT1zdp7dc"); -// app.post("api/charge", function(req, res) { - -// const token = request.body.stripeToken; - - -// stripe.charges.create({ -// amount: 10, -// currency: 'usd', -// customer: customer.id, -// source: token -// }, function(err, charge) { -// if (err) { -// console.log(err); -// } else { -// console.log("successful charge") -// } -// }); - - - +var env = process.env.NODE_ENV || "development"; +var { secret } = require('../config/config.json').stripe +var stripe = require('stripe')(secret) + +module.exports = function(app) { + // creates charge on stripe + app.post("/api/charge", function(req, res) { + var source = req.body.source + var { amount, currency, description } = req.body.product + + stripe.charges.create({ + description, + amount, + currency, + source + }, function(err, charge) { + if (err) { + var data = { + err: `Payment Failed` + } + res.status(409).json(data); + console.log('Error occured during the payment', err) + } else { + var data = { + success: `Payment has been completed` + } + res.json(data); + console.log('Payment has been completed!') + } + }); + }); + +}; \ No newline at end of file diff --git a/routes/htmlRoutes.js b/routes/htmlRoutes.js index fa23c44..6806211 100644 --- a/routes/htmlRoutes.js +++ b/routes/htmlRoutes.js @@ -55,6 +55,11 @@ module.exports = function(app) { res.render("login-signup"); }); + // Load success page after payment + app.get("/paysuccess", function(req, res) { + res.render("paysuccess"); + }); + // Render 404 page for any unmatched routes app.get("*", function(req, res) { res.render("404"); diff --git a/server.js b/server.js index 7a675a7..d92ce18 100644 --- a/server.js +++ b/server.js @@ -32,6 +32,7 @@ app.set("view engine", "handlebars"); // Routes require("./routes/apiRoutes-class")(app); +require("./routes/apiRoutes-stripe")(app); require("./routes/apiRoutes-user")(app); require("./routes/htmlRoutes")(app); diff --git a/views/class-details.handlebars b/views/class-details.handlebars index c6f0d2f..c7bd5f2 100644 --- a/views/class-details.handlebars +++ b/views/class-details.handlebars @@ -5,19 +5,7 @@