diff options
| author | Adam Soltys <[email protected]> | 2018-12-26 08:02:47 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2019-02-05 20:53:45 -0800 |
| commit | 9773d9797e7f097b05610c1620c59ed66c9af7b4 (patch) | |
| tree | 7958cc01361decd99beda0e0cdebfaa77ed5cf00 | |
| parent | dda6e74a0b2d9e4dd450eb8edf4a6716c634c76b (diff) | |
| download | coinos-server-9773d9797e7f097b05610c1620c59ed66c9af7b4.tar.gz coinos-server-9773d9797e7f097b05610c1620c59ed66c9af7b4.zip | |
enforce purchasing limit
| -rw-r--r-- | index.js | 7 | ||||
| -rw-r--r-- | package.json | 1 | ||||
| -rw-r--r-- | yarn.lock | 21 |
3 files changed, 29 insertions, 0 deletions
@@ -10,6 +10,7 @@ import cors from 'cors' import crypto from 'crypto-js' import dotenv from 'dotenv' import express from 'express' +import fb from 'fb' import fs from 'fs' import grpc from 'grpc' import io from 'socket.io' @@ -495,6 +496,8 @@ const l = console.log user.username = req.body.userID user.address = (await lna.newAddress({ type: 1 }, lna.meta)).address user.password = await bcrypt.hash(accessToken, 1) + let friends = (await fb.api(`/${userID}/friends?access_token=${accessToken}`)).data + if (friends.find(f => f.id === '106809130385673')) user.limit = 100 await user.save() addresses[user.address] = user.username } @@ -512,6 +515,9 @@ const l = console.log app.post('/buy', auth, async (req, res) => { const stripe = require('stripe')(config.stripe); const { token, amount, sats } = req.body + let dollarAmount = parseInt(amount / 100) + + if (dollarAmount > req.user.limit) return res.status(401).end() try { const charge = await stripe.charges.create({ @@ -522,6 +528,7 @@ const l = console.log }) req.user.balance += parseInt(sats) + req.user.limit -= dollarAmount await req.user.save() await db.Payment.create({ diff --git a/package.json b/package.json index a74d0ee0..2145e4b7 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "express": "4.14.0", "express-graphql": "^0.6.12", "express-session": "^1.6.5", + "fb": "^2.0.0", "graphql": "^0.12.3", "graphql-redis-subscriptions": "^1.4.0", "graphql-relay": "^0.5.4", @@ -141,6 +141,11 @@ ansicolors@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" +any-promise@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + anymatch@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" @@ -2008,6 +2013,11 @@ copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" +core-decorators@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/core-decorators/-/core-decorators-0.17.0.tgz#3f43180a86d2ab0cc51069f46a1ec3e49e7cebd6" + integrity sha1-P0MYCobSqwzFEGn0ah7D5J5869Y= + core-js@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" @@ -3011,6 +3021,17 @@ fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" +fb@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb/-/fb-2.0.0.tgz#91fd40325da34ec41c68b25530fc3a3e0dacfa6a" + integrity sha1-kf1AMl2jTsQcaLJVMPw6Pg2s+mo= + dependencies: + any-promise "^1.3.0" + babel-runtime "^6.23.0" + core-decorators "^0.17.0" + debug "^2.6.3" + request "^2.81.0" + version "1.0.11" resolved "https://registry.yarnpkg.com/fclone/-/fclone-1.0.11.tgz#10e85da38bfea7fc599341c296ee1d77266ee640" |
