diff options
| author | Adam Soltys <[email protected]> | 2018-12-25 22:39:26 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2019-02-05 20:53:45 -0800 |
| commit | 8b24c4355330360d103a0abb2fa2018781a6ac24 (patch) | |
| tree | 7a0c000ee2ff0767f5479d191db9580cfb832905 | |
| parent | d95cc133a9f26c6d7485d3af2b6e7447208d4794 (diff) | |
| download | coinos-server-8b24c4355330360d103a0abb2fa2018781a6ac24.tar.gz coinos-server-8b24c4355330360d103a0abb2fa2018781a6ac24.zip | |
facebook login
| -rw-r--r-- | index.js | 62 |
1 files changed, 52 insertions, 10 deletions
@@ -191,7 +191,7 @@ const l = console.log }) socket.emit('tx', message) - } catch (e) { console.log(e) } + } catch (e) { l(e) } } } catch(e) {} }) @@ -476,21 +476,63 @@ const l = console.log } }) + app.post('/facebookLogin', async (req, res) => { + try { + let user = await db.User.findOne({ + where: { + username: req.body.userID + } + }) + + if (!user) { + user = await db.User.create(user) + user.username = req.body.userID + user.address = (await lna.newAddress({ type: 1 }, lna.meta)).address + user.password = await bcrypt.hash(req.body.accessToken, 1) + console.log(user) + await user.save() + addresses[user.address] = user.username + } + + let payload = { username: user.username } + let token = jwt.sign(payload, process.env.SECRET) + res.cookie('token', token, { expires: new Date(Date.now() + 432000000) }) + res.send({ user, token }) + } catch(err) { + l(err) + res.status(401).end() + } + }) + app.post('/buy', auth, async (req, res) => { const stripe = require('stripe')(config.stripe); const { token, amount, sats } = req.body - const charge = stripe.charges.create({ - amount, - currency: 'cad', - description: 'Bitcoin', - source: token, - }) + try { + const charge = stripe.charges.create({ + amount, + currency: 'cad', + description: 'Bitcoin', + source: token, + }) - req.user.balance += parseInt(sats) - await req.user.save() + req.user.balance += parseInt(sats) + await req.user.save() - res.send(`Bought ${amount}`) + await db.Payment.create({ + user_id: req.user.id, + hash: 'CoinOS Buy', + amount: parseInt(sats), + currency: 'CAD', + rate: app.get('rates').ask, + received: true, + tip: 0 + }) + + res.send(`Bought ${amount}`) + } catch (e) { + res.status(500).send(e) + } }) app.use(function (err, req, res, next) { |
