Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var socket = require('socket.io');
- const cookieSession = require('cookie-session');
- const passport = require('passport');
- const authRoutes = require('./routes/auth-routes');
- const profileRoutes = require('./routes/profile-routes');
- const passportSetup = require('./config/passport-setup');
- const mongoose = require('mongoose');
- const keys = require('./config/keys');
- const mysql = require('mysql');
- const User = require('./models/user-model.js');
- var bundle = require('socket.io-bundle');
- var ioPassport = require('socket.io-passport');
- const session = require('express-session');
- const MongoStore = require('connect-mongo')(session);
- var passportSocketIo = require("passport.socketio");
- const Discord = require('discord.js');
- const client = new Discord.Client();
- const keyPublishable = 'pk_test_yntCy3sFi63sgvtAxK7344Il';
- const keySecret = 'sk_test_VUqFfoG7sKaGMuVPHQz88n1q';
- const stripe = require("stripe")(keySecret);
- const SQL_CONFIG = {
- host: 'localhost',
- user: 'root',
- password: '3pY%S9x%H)Db,HK',
- database: 'tk',
- };
- const APP_SESSION = {
- key: 'ticketkingsisdabest',
- secret: 'ticketkingsisdabest',
- store: new MongoStore({ mongooseConnection: mongoose.connection })
- };
- function onAuthorizeSuccess(data, accept){
- console.log('successful connection to socket.io');
- accept(null, true);
- }
- function onAuthorizeFail(data, message, error, accept){
- if(error)
- throw new Error(message);
- console.log('failed connection to socket.io:', message);
- accept(null, false);
- }
- const IO_CONFIG = {
- key: 'ticketkingsisdabest', // the name of the cookie where express/connect stores its session_id
- secret: 'ticketkingsisdabest', // the session_secret to parse the cookie
- store: new MongoStore({ mongooseConnection: mongoose.connection }), // we NEED to use a sessionstore. no memorystore please
- success: onAuthorizeSuccess, // *optional* callback on success - read more below
- fail: onAuthorizeFail, // *optional* callback on fail/error - read more below
- }
- var sql = mysql.createConnection(SQL_CONFIG);
- sql.connect(err => {
- if(err) console.log(err);
- console.log('Connected to DB');
- });
- // App setup
- var app = express();
- var server = app.listen(80, function(){
- console.log('listening for requests on port 80');
- });
- app.set('view engine', 'ejs');
- app.use(express.static(__dirname + '/views'));
- app.use(require('body-parser').raw({type: '*/*'}));
- app.use(session(APP_SESSION));
- // Socket setup & pass server
- var io = socket(server);
- io.use(passportSocketIo.authorize(IO_CONFIG));
- // initialize passport
- app.use(passport.initialize());
- app.use(passport.session());
- // connect to mongodb
- mongoose.connect(keys.mongodb.dbURI, () => {
- console.log('connected to mongodb');
- });
- // set up routes
- app.use(authRoutes);
- app.use(profileRoutes);
- const authCheckMain = (req, res, next) => {
- if(!req.user) {
- next();
- } else {
- res.redirect('/dashboard');
- }
- };
- app.get('/', authCheckMain, (req, res) => {
- res.render('home', { user: req.user });
- });
- app.post('/key/subscription/failed', (req, res) => {
- const event = JSON.parse(req.body);
- console.log(event.data.object.customer);
- sql.query(`UPDATE users SET key_deactivated='true' WHERE user_stripe_id='${event.data.object.customer}';`, (error, result) => {
- if(error) console.log(error);
- });
- res.sendStatus(200);
- });
- app.post('/key/subscription/success', (req, res) => {
- const event = JSON.parse(req.body);
- var eDateToday = new Date();
- eDateToday.setMonth(eDateToday.getMonth() + 1);
- var eDate;
- var edd = eDateToday.getDate();
- var emm = eDateToday.getMonth() + 1;
- var eyyyy = eDateToday.getFullYear();
- if (edd < 10) {
- edd = '0' + edd;
- }
- if (emm < 10) {
- emm = '0' + emm;
- }
- var eDate = edd + '/' + emm + '/' + eyyyy; //date of expiry
- var ets = eDateToday.getTime(); //timestamp of expiry
- sql.query(`UPDATE users SET (user_key_expiry,user_key_expiry_timestamp) VALUES('${eDate}','${ets}') WHERE user_stripe_id='${event.data.object.customer}';`, (error, result) => {
- if(error) console.log(error);
- });
- res.sendStatus(200);
- });
- app.post("/charge", (req, res) => {
- stripe.sources.create({
- type: 'card',
- currency: 'usd',
- owner: {
- email: 'ramosterious@gmail.com',
- },
- }, function(err, source){
- stripe.customers.create({
- email: email,
- source: source.id
- }, function(error, customer) {
- if(err) {
- res.send('error in customer');
- } else {
- const {id} = customer;
- stripe.subscriptions.create({
- customer: id,
- items: [
- {
- plan: "tk",
- },
- ],
- }, function(error, subscription) {
- if(error) res.send('error in subscription');
- else {
- let r = Math.random().toString(36).substr(2, 3).toUpperCase() + "-" + Math.random().toString(36).substr(2, 3).toUpperCase() + "-" + Math.random().toString(36).substr(2, 4).toUpperCase();
- let order = Math.random().toString(36).substr(2, 6).toUpperCase();
- var today = new Date();
- var oDate;
- var dd = today.getDate();
- var mm = today.getMonth() + 1;
- var yyyy = today.getFullYear();
- if (dd < 10) {
- dd = '0' + dd;
- }
- if (mm < 10) {
- mm = '0' + mm;
- }
- var oDate = dd + '/' + mm + '/' + yyyy; //date of order
- var ots = today.getTime(); //timestamp of order
- var eDateToday = new Date();
- eDateToday.setMonth(eDateToday.getMonth() + 1);
- var eDate;
- var edd = eDateToday.getDate();
- var emm = eDateToday.getMonth() + 1;
- var eyyyy = eDateToday.getFullYear();
- if (edd < 10) {
- edd = '0' + edd;
- }
- if (emm < 10) {
- emm = '0' + emm;
- }
- var eDate = edd + '/' + emm + '/' + eyyyy; //date of expiry
- var ets = eDateToday.getTime(); //timestamp of expiry
- var afterAmount = amount.toString();
- afterAmount = afterAmount.slice(0, -2);
- afterAmount = parseInt(afterAmount);
- sql.query(`INSERT INTO users(user_id, user_username, user_email, user_key, user_key_expiry, user_stripe_id, user_stripe_sub_id, user_amount, user_order_id, user_order_date, user_key_expiry_timestamp) VALUES('${req.user.discordid}','${req.user.username}','${email}','${r}','${eDate}','${id}','${subscription.id}','${afterAmount}','${order}','${oDate}','${ets}');`, async (errsql, resultsql) => {
- if(errsql) console.log(errsql);
- });
- res.render("charge.ejs", { key: r, ord: order, user: req.user });
- }
- }
- );
- }
- })
- })
- // stripe.customers.create({
- // email: email,
- // }, function(err, customer) {
- // if(err) {
- // res.send('error');
- // } else {
- // const { id } = customer;
- // stripe.sources.create({
- // type: 'card',
- // currency: 'usd',
- // owner: {
- // email: email
- // }
- // }, function(err1, source) {
- // console.log(source);
- // if(err1) console.log(err1);
- // stripe.customers.createSource(
- // id,
- // { source: source.id },
- // function(err2, card) {
- // if(err2) console.log(err2)
- // }
- // );
- // });
- // }
- // })
- //var amount = 5000;
- // stripe.customers.create({
- // email: req.body.stripeEmail,
- // source: req.body.stripeToken
- // })
- // .then(customer =>
- // stripe.charges.create({
- // amount,
- // description: "Ticket Kings Membership Key",
- // currency: "usd",
- // customer: customer.id
- // }))
- // .then((charge) => {
- // let r = Math.random().toString(36).substr(2, 3).toUpperCase() + "-" + Math.random().toString(36).substr(2, 3).toUpperCase() + "-" + Math.random().toString(36).substr(2, 4).toUpperCase();
- // let order = Math.random().toString(36).substr(2, 6).toUpperCase();
- // res.render("charge.ejs", { key: r, ord: order, user: req.user });
- // var today = new Date();
- // var oDate;
- // var dd = today.getDate();
- // var mm = today.getMonth() + 1;
- // var yyyy = today.getFullYear();
- // if (dd < 10) {
- // dd = '0' + dd;
- // }
- // if (mm < 10) {
- // mm = '0' + mm;
- // }
- // var oDate = dd + '/' + mm + '/' + yyyy; //date of order
- // var ots = today.getTime(); //timestamp of order
- // var eDateToday = new Date();
- // eDateToday.setMonth(eDateToday.getMonth() + 1);
- // var eDate;
- // var edd = eDateToday.getDate();
- // var emm = eDateToday.getMonth() + 1;
- // var eyyyy = eDateToday.getFullYear();
- // if (edd < 10) {
- // edd = '0' + edd;
- // }
- // if (emm < 10) {
- // emm = '0' + emm;
- // }
- // var eDate = edd + '/' + emm + '/' + eyyyy; //date of expiry
- // var ets = eDateToday.getTime(); //timestamp of expiry
- // var afterAmount = amount.toString();
- // afterAmount = afterAmount.slice(0, -2);
- // afterAmount = parseInt(afterAmount);
- // sql.query(`INSERT INTO users(user_id, user_username, user_email, user_key, user_key_expiry, user_stripe_id, user_amount, user_order_id, user_order_date, user_key_expiry_timestamp) VALUES('${req.user.discordid}','${req.user.username}','${email}','${r}','${eDate}','${charge.customer}','${afterAmount}','${order}','${oDate}','${ets}');`, async (errsql, resultsql) => {
- // if(errsql) console.log(errsql);
- // });
- // });
- });
- app.get('*', async (req, res) => {
- res.render('404');
- });
- io.on('connection', (socket) => {
- console.log('made socket connection', socket.id);
- console.log(socket.request.user);
- });
- io.of('/activate').on('connection', (socket) => {
- socket.on('activate', (data) => {
- sql.query(`SELECT * FROM users WHERE user_key='${data.key}';`, function(err, res) {
- if(err) console.log(err);
- if(res.length < 1) {
- io.sockets.emit('wrong', data);
- } else {
- sql.query(`UPDATE users SET key_activated='true' WHERE user_key='${data.key}';`, (error, result) => {
- if(error) console.log(error);
- io.sockets.emit('success', data);
- });
- }
- })
- });
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement