aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2018-12-26 08:02:47 -0800
committerAdam Soltys <[email protected]>2019-02-05 20:53:45 -0800
commit9773d9797e7f097b05610c1620c59ed66c9af7b4 (patch)
tree7958cc01361decd99beda0e0cdebfaa77ed5cf00
parentdda6e74a0b2d9e4dd450eb8edf4a6716c634c76b (diff)
downloadcoinos-server-9773d9797e7f097b05610c1620c59ed66c9af7b4.tar.gz
coinos-server-9773d9797e7f097b05610c1620c59ed66c9af7b4.zip
enforce purchasing limit
-rw-r--r--index.js7
-rw-r--r--package.json1
-rw-r--r--yarn.lock21
3 files changed, 29 insertions, 0 deletions
diff --git a/index.js b/index.js
index 4f2cab13..3149a2af 100644
--- a/index.js
+++ b/index.js
@@ -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",
diff --git a/yarn.lock b/yarn.lock
index ac32430b..b08eca30 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -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"