aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2018-02-12 17:53:49 -0800
committerAdam Soltys <[email protected]>2018-02-12 17:53:49 -0800
commitcbf91f53e6c97cdb76c293c46813fbc9a74f47e5 (patch)
treec410b374ce2736960ea67923a55a319b1817a359
parentebd061cf34aff30033511f9f1ec10ac21d1dcd94 (diff)
downloadcoinos-server-cbf91f53e6c97cdb76c293c46813fbc9a74f47e5.tar.gz
coinos-server-cbf91f53e6c97cdb76c293c46813fbc9a74f47e5.zip
create user mutation
-rw-r--r--.babelrc3
-rw-r--r--db.js1
-rw-r--r--ecosystem.config.js2
-rw-r--r--index.js28
-rw-r--r--mutations.js38
-rw-r--r--package.json5
-rw-r--r--yarn.lock88
7 files changed, 150 insertions, 15 deletions
diff --git a/.babelrc b/.babelrc
index c13c5f62..babbfa2d 100644
--- a/.babelrc
+++ b/.babelrc
@@ -1,3 +1,4 @@
{
- "presets": ["es2015"]
+ "presets": ["env"],
+ "plugins": ["transform-object-rest-spread"],
}
diff --git a/db.js b/db.js
index 62ec3972..04822a94 100644
--- a/db.js
+++ b/db.js
@@ -89,6 +89,7 @@ const p = new Promise((resolve, reject) => {
name: 'RootQueryType',
fields: gqlfields
}),
+ mutation: require('./mutations')(db, gqltypes)
})
resolve(db)
diff --git a/ecosystem.config.js b/ecosystem.config.js
index 1093c494..a44c0de5 100644
--- a/ecosystem.config.js
+++ b/ecosystem.config.js
@@ -5,7 +5,7 @@ module.exports = {
script: 'index.js',
exec_interpreter: './node_modules/.bin/babel-node',
exec_mode: 'fork',
- watch: ['index.js'],
+ watch: ['*.js'],
env: {
COMMON_VARIABLE: 'true'
},
diff --git a/index.js b/index.js
index ea93f627..cad9a57f 100644
--- a/index.js
+++ b/index.js
@@ -12,6 +12,7 @@ import grpc from 'grpc'
import passport from './passport'
import jwt from 'jsonwebtoken'
import bcrypt from 'bcrypt'
+import deepstream from 'deepstream.io-client-js'
import { graphqlExpress, graphiqlExpress } from 'apollo-server-express'
dotenv.config()
@@ -30,24 +31,31 @@ const l = console.log
const restClient = ba.restfulClient(process.env.BITCOINAVERAGE_PUBLIC, process.env.BITCOINAVERAGE_SECRET)
const lnrpc = await require('lnrpc')({ server: 'localhost:10001' })
- const adminMacaroon = fs.readFileSync('/home/adam/.lnd.testa/admin.macaroon');
- const meta = new grpc.Metadata();
- meta.add('macaroon', adminMacaroon.toString('hex'));
+ const adminMacaroon = fs.readFileSync('/home/adam/.lnd.testa/admin.macaroon')
+
+
+ const meta = new grpc.Metadata()
+ meta.add('macaroon', adminMacaroon.toString('hex'))
+
+ const invoices = lnrpc.subscribeInvoices({}, meta)
+ invoices.on('data', msg => {
+ const ds = deepstream('0.0.0.0:6020')
+ ds.login()
+ ds.event.emit('invoices', msg)
+ })
app.get('/balance', async (req, res) => {
res.json(await lnrpc.walletBalance({witness_only: true}, meta))
})
app.post('/sendPayment', async (req, res) => {
- let payments = lnrpc.sendPayment(meta, {})
- payments.on('data', msg => l(msg))
- payments.write({
- payment_request: req.body.payreq
- })
+ const payments = lnrpc.sendPayment(meta, {})
+ payments.write({ payment_request: req.body.payreq })
+ res.end()
})
- app.get('/addinvoice', async (req, res) => {
- res.json(await lnrpc.walletBalance({witness_only: true}, meta))
+ app.post('/addInvoice', async (req, res) => {
+ res.json(await lnrpc.addInvoice({ value: req.body.amount }, meta))
})
let fetchRates
diff --git a/mutations.js b/mutations.js
new file mode 100644
index 00000000..795c885a
--- /dev/null
+++ b/mutations.js
@@ -0,0 +1,38 @@
+import { resolver, defaultArgs, defaultListArgs, attributeFields } from 'graphql-sequelize'
+import {
+ graphql,
+ GraphQLSchema,
+ GraphQLObjectType,
+ GraphQLInputObjectType,
+ GraphQLString,
+ GraphQLInt,
+ GraphQLNonNull,
+ GraphQLList
+} from 'graphql'
+
+module.exports = (db, gqltypes) => {
+ const UserInputType = new GraphQLInputObjectType({
+ name: 'UserInput',
+ desc: 'UserInput',
+ fields: {
+ ...attributeFields(db['User'], { exclude: ['id'] }),
+ }
+ })
+
+ return new GraphQLObjectType({
+ name: 'mutation',
+ fields: {
+ createUser: {
+ type: gqltypes['users'],
+ args: {
+ user: {
+ type: UserInputType
+ }
+ },
+ resolve: async (root, { user }) => {
+ return db['User'].create(user)
+ }
+ },
+ }
+ })
+}
diff --git a/package.json b/package.json
index a5bead48..c4a0d2b6 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
"apollo-server-express": "^1.3.2",
"async": "2.1.1",
"babel-cli": "^6.26.0",
+ "babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-preset-env": "^1.6.1",
"bcrypt": "^1.0.3",
"bip39": "^2.2.0",
@@ -26,6 +27,7 @@
"consolidate": "0.14.1",
"cookie-parser": "^1.3.2",
"cors": "^2.8.4",
+ "deepstream.io-client-js": "^2.3.0",
"dotenv": "^4.0.0",
"express": "4.14.0",
"express-session": "^1.6.5",
@@ -38,7 +40,7 @@
"http-proxy-middleware": "^0.17.2",
"jsonwebtoken": "^8.1.1",
"less": "2.7.1",
- "lnrpc": "^0.0.3",
+ "lnrpc": "https://github.com/asoltys/lnrpc#d3f6196",
"lodash": "^4.17.4",
"moment": "^2.10.6",
"mysql": "^2.15.0",
@@ -54,6 +56,7 @@
"sequelize-auto": "^0.4.29",
"sequelize-cli": "^3.2.0",
"socket.io-client": "^2.0.3",
+ "sql-template-strings": "^2.2.2",
"twilio": "^2.11.1",
"zeromq": "^4.6.0"
},
diff --git a/yarn.lock b/yarn.lock
index 78486c31..49ac8b49 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -276,6 +276,10 @@ async-each@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
+async-limiter@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
+
async.ensureasync@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/async.ensureasync/-/async.ensureasync-0.5.2.tgz#c3c7e4a4e9b31d96875d56b8504598446e1e305d"
@@ -573,6 +577,10 @@ babel-plugin-syntax-exponentiation-operator@^6.8.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de"
+babel-plugin-syntax-object-rest-spread@^6.8.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
+
babel-plugin-syntax-trailing-function-commas@^6.22.0:
version "6.22.0"
resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3"
@@ -780,6 +788,13 @@ babel-plugin-transform-exponentiation-operator@^6.22.0:
babel-plugin-syntax-exponentiation-operator "^6.8.0"
babel-runtime "^6.22.0"
+babel-plugin-transform-object-rest-spread@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
+ dependencies:
+ babel-plugin-syntax-object-rest-spread "^6.8.0"
+ babel-runtime "^6.26.0"
+
babel-plugin-transform-regenerator@^6.22.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f"
@@ -1052,6 +1067,10 @@ binary-extensions@^1.0.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
+bindings@~1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
+
bip39@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.3.0.tgz#e4ee6c6d1bd90ca00ffd57ad446bdf8c017ff484"
@@ -1344,6 +1363,14 @@ [email protected]:
version "0.2.0"
resolved "https://registry.yarnpkg.com/bufferhelper/-/bufferhelper-0.2.0.tgz#ec2f38d92538769cea2901487935e9e21d8173b3"
+bufferutil@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-3.0.3.tgz#ce67caefde2282591e399528467fe623f68f4bd5"
+ dependencies:
+ bindings "~1.3.0"
+ nan "~2.7.0"
+ prebuild-install "~2.3.0"
+
builtin-modules@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
@@ -1612,6 +1639,10 @@ [email protected]:
version "1.0.0"
resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
+component-emitter2@^1.3.5:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/component-emitter2/-/component-emitter2-1.3.5.tgz#c1928a8439460ed370266ef5a98236450d7a83d2"
+
version "1.1.2"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3"
@@ -1968,6 +1999,16 @@ deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+deepstream.io-client-js@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/deepstream.io-client-js/-/deepstream.io-client-js-2.3.0.tgz#9be8b89a9c868624191aa45f444870192cc3feb7"
+ dependencies:
+ component-emitter2 "^1.3.5"
+ ws "^3.1.0"
+ optionalDependencies:
+ bufferutil "^3.0.2"
+ utf-8-validate "^3.0.3"
+
del@^2.0.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
@@ -3750,9 +3791,9 @@ limiter@^1.0.5:
version "1.1.0"
resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.0.tgz#6e2bd12ca3fcdaa11f224e2e53c896df3f08d913"
-lnrpc@^0.0.3:
+"lnrpc@https://github.com/asoltys/lnrpc#d3f6196":
version "0.0.3"
- resolved "https://registry.yarnpkg.com/lnrpc/-/lnrpc-0.0.3.tgz#793b75611450c94ee96b485d7bf7e55a3d4d158c"
+ resolved "https://github.com/asoltys/lnrpc#d3f6196af87d4cc86d59d4b39627d9368ee0e988"
dependencies:
grpc "^1.6.0"
napa "^3.0.0"
@@ -4221,6 +4262,10 @@ nan@^2.3.3, nan@^2.6.2, nan@^2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a"
+nan@~2.7.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
+
napa@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/napa/-/napa-3.0.0.tgz#ec3a8fde07190b69f2fe434c395a3e6946841b56"
@@ -4750,6 +4795,25 @@ prebuild-install@^2.2.2:
tunnel-agent "^0.6.0"
xtend "4.0.1"
+prebuild-install@~2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.3.0.tgz#19481247df728b854ab57b187ce234211311b485"
+ dependencies:
+ expand-template "^1.0.2"
+ github-from-package "0.0.0"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
+ node-abi "^2.1.1"
+ noop-logger "^0.1.1"
+ npmlog "^4.0.1"
+ os-homedir "^1.0.1"
+ pump "^1.0.1"
+ rc "^1.1.6"
+ simple-get "^1.4.2"
+ tar-fs "^1.13.0"
+ tunnel-agent "^0.6.0"
+ xtend "4.0.1"
+
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -5739,6 +5803,10 @@ sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+sql-template-strings@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/sql-template-strings/-/sql-template-strings-2.2.2.tgz#3f11508a25addfce217a3042a9d300c3193b96ff"
+
[email protected], sqlstring@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.0.tgz#525b8a4fd26d6f71aa61e822a6caf976d31ad2a8"
@@ -6144,6 +6212,14 @@ user-home@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
+utf-8-validate@^3.0.3:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-3.0.4.tgz#a79962cfa4142dda7050234e7e9b37b33907d2af"
+ dependencies:
+ bindings "~1.3.0"
+ nan "~2.7.0"
+ prebuild-install "~2.3.0"
+
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -6325,6 +6401,14 @@ ws@^3.0.0:
safe-buffer "~5.1.0"
ultron "~1.1.0"
+ws@^3.1.0:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
+ dependencies:
+ async-limiter "~1.0.0"
+ safe-buffer "~5.1.0"
+ ultron "~1.1.0"
+
ws@~2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-2.3.1.tgz#6b94b3e447cb6a363f785eaf94af6359e8e81c80"