diff --git a/lib/new-admin/admin-server.js b/lib/new-admin/admin-server.js index 1778de9a..cb7cf96f 100644 --- a/lib/new-admin/admin-server.js +++ b/lib/new-admin/admin-server.js @@ -12,7 +12,7 @@ const { ApolloServer, AuthenticationError } = require('apollo-server-express') const _ = require('lodash/fp') const { typeDefs, resolvers } = require('./graphql/schema') -const login = require('./modules/login') +const login = require('./services/login') const register = require('./routes/authentication') const options = require('../options') diff --git a/lib/new-admin/graphql/resolvers/bill.resolver.js b/lib/new-admin/graphql/resolvers/bill.resolver.js new file mode 100644 index 00000000..0a22bab1 --- /dev/null +++ b/lib/new-admin/graphql/resolvers/bill.resolver.js @@ -0,0 +1,9 @@ +const bills = require('../../services/bills') + +const resolvers = { + Query: { + bills: () => bills.getBills() + } +} + +module.exports = resolvers diff --git a/lib/new-admin/graphql/resolvers/funding.resolver.js b/lib/new-admin/graphql/resolvers/funding.resolver.js index 2cb6fd76..b9b1c16c 100644 --- a/lib/new-admin/graphql/resolvers/funding.resolver.js +++ b/lib/new-admin/graphql/resolvers/funding.resolver.js @@ -1,4 +1,4 @@ -const funding = require('../../modules/funding') +const funding = require('../../services/funding') const resolvers = { Query: { diff --git a/lib/new-admin/graphql/resolvers/index.js b/lib/new-admin/graphql/resolvers/index.js index 63a359fd..b54c25b9 100644 --- a/lib/new-admin/graphql/resolvers/index.js +++ b/lib/new-admin/graphql/resolvers/index.js @@ -1,5 +1,6 @@ const { mergeResolvers } = require('@graphql-tools/merge') +const bill = require('./bill.resolver') const blacklist = require('./blacklist.resolver') const config = require('./config.resolver') const currency = require('./currency.resolver') @@ -7,8 +8,10 @@ const customer = require('./customer.resolver') const funding = require('./funding.resolver') const log = require('./log.resolver') const machine = require('./machine.resolver') +const notification = require('./notification.resolver') const pairing = require('./pairing.resolver') const promo = require('./promo.resolver') +const rates = require('./rates.resolver') const scalar = require('./scalar.resolver') const settings = require('./settings.resolver') const status = require('./status.resolver') @@ -16,6 +19,7 @@ const transaction = require('./transaction.resolver') const version = require('./version.resolver') const resolvers = [ + bill, blacklist, config, currency, @@ -23,8 +27,10 @@ const resolvers = [ funding, log, machine, + notification, pairing, promo, + rates, scalar, settings, status, diff --git a/lib/new-admin/graphql/resolvers/log.resolver.js b/lib/new-admin/graphql/resolvers/log.resolver.js index 3b308f94..6b439dc2 100644 --- a/lib/new-admin/graphql/resolvers/log.resolver.js +++ b/lib/new-admin/graphql/resolvers/log.resolver.js @@ -1,7 +1,7 @@ const { parseAsync } = require('json2csv') const logs = require('../../../logs') -const serverLogs = require('../../modules/server-logs') +const serverLogs = require('../../services/server-logs') const resolvers = { Query: { diff --git a/lib/new-admin/graphql/resolvers/machine.resolver.js b/lib/new-admin/graphql/resolvers/machine.resolver.js index dbcff058..c2e5bc2c 100644 --- a/lib/new-admin/graphql/resolvers/machine.resolver.js +++ b/lib/new-admin/graphql/resolvers/machine.resolver.js @@ -1,6 +1,6 @@ const DataLoader = require('dataloader') -const { machineAction } = require('../../modules/machines') +const { machineAction } = require('../../services/machines') const machineLoader = require('../../../machine-loader') const machineEventsByIdBatch = require('../../../postgresql_interface').machineEventsByIdBatch diff --git a/lib/new-admin/graphql/resolvers/notification.resolver.js b/lib/new-admin/graphql/resolvers/notification.resolver.js new file mode 100644 index 00000000..4a2db72a --- /dev/null +++ b/lib/new-admin/graphql/resolvers/notification.resolver.js @@ -0,0 +1,15 @@ +const notifierQueries = require('../../../notifier/queries') + +const resolvers = { + Query: { + notifications: () => notifierQueries.getNotifications(), + hasUnreadNotifications: () => notifierQueries.hasUnreadNotifications(), + alerts: () => notifierQueries.getAlerts() + }, + Mutation: { + toggleClearNotification: (...[, { id, read }]) => notifierQueries.setRead(id, read), + clearAllNotifications: () => notifierQueries.markAllAsRead() + } +} + +module.exports = resolvers diff --git a/lib/new-admin/graphql/resolvers/pairing.resolver.js b/lib/new-admin/graphql/resolvers/pairing.resolver.js index da8d24a9..510a6ef1 100644 --- a/lib/new-admin/graphql/resolvers/pairing.resolver.js +++ b/lib/new-admin/graphql/resolvers/pairing.resolver.js @@ -1,4 +1,4 @@ -const pairing = require('../../modules/pairing') +const pairing = require('../../services/pairing') const resolvers = { Mutation: { diff --git a/lib/new-admin/graphql/resolvers/rates.resolver.js b/lib/new-admin/graphql/resolvers/rates.resolver.js new file mode 100644 index 00000000..dffa74e1 --- /dev/null +++ b/lib/new-admin/graphql/resolvers/rates.resolver.js @@ -0,0 +1,21 @@ +const settingsLoader = require('../../../new-settings-loader') +const forex = require('../../../forex') +const plugins = require('../../../plugins') + +const resolvers = { + Query: { + cryptoRates: () => + settingsLoader.loadLatest().then(settings => { + const pi = plugins(settings) + return pi.getRawRates().then(r => { + return { + withCommissions: pi.buildRates(r), + withoutCommissions: pi.buildRatesNoCommission(r) + } + }) + }), + fiatRates: () => forex.getFiatRates() + } +} + +module.exports = resolvers diff --git a/lib/new-admin/graphql/resolvers/settings.resolver.js b/lib/new-admin/graphql/resolvers/settings.resolver.js index 47079d3a..ecf99e4a 100644 --- a/lib/new-admin/graphql/resolvers/settings.resolver.js +++ b/lib/new-admin/graphql/resolvers/settings.resolver.js @@ -7,7 +7,7 @@ const notify = () => got.post('http://localhost:3030/dbChange') const resolvers = { Query: { - accounts: () => settingsLoader.loadAccounts(), + accounts: () => settingsLoader.showAccounts(), config: () => settingsLoader.loadLatestConfigOrNone() }, Mutation: { diff --git a/lib/new-admin/graphql/resolvers/status.resolver.js b/lib/new-admin/graphql/resolvers/status.resolver.js index 50acbc52..f357b78b 100644 --- a/lib/new-admin/graphql/resolvers/status.resolver.js +++ b/lib/new-admin/graphql/resolvers/status.resolver.js @@ -1,4 +1,4 @@ -const supervisor = require('../../modules/supervisor') +const supervisor = require('../../services/supervisor') const resolvers = { Query: { diff --git a/lib/new-admin/graphql/resolvers/transaction.resolver.js b/lib/new-admin/graphql/resolvers/transaction.resolver.js index 781885a5..714c7157 100644 --- a/lib/new-admin/graphql/resolvers/transaction.resolver.js +++ b/lib/new-admin/graphql/resolvers/transaction.resolver.js @@ -1,7 +1,7 @@ const DataLoader = require('dataloader') const { parseAsync } = require('json2csv') -const transactions = require('../../modules/transactions') +const transactions = require('../../services/transactions') const anonymous = require('../../../constants').anonymousCustomer const transactionsLoader = new DataLoader(ids => transactions.getCustomerTransactionsBatch(ids)) @@ -14,8 +14,8 @@ const resolvers = { isAnonymous: parent => (parent.customerId === anonymous.uuid) }, Query: { - transactions: (...[, { from, until, limit, offset }]) => - transactions.batch(from, until, limit, offset), + transactions: (...[, { from, until, limit, offset, deviceId }]) => + transactions.batch(from, until, limit, offset, deviceId), transactionsCsv: (...[, { from, until, limit, offset }]) => transactions.batch(from, until, limit, offset).then(parseAsync) } diff --git a/lib/new-admin/graphql/types/bill.type.js b/lib/new-admin/graphql/types/bill.type.js new file mode 100644 index 00000000..e7c4478a --- /dev/null +++ b/lib/new-admin/graphql/types/bill.type.js @@ -0,0 +1,16 @@ +const { gql } = require('apollo-server-express') + +const typeDef = gql` + type Bill { + fiat: Int + deviceId: ID + created: Date + cashbox: Int + } + + type Query { + bills: [Bill] + } +` + +module.exports = typeDef diff --git a/lib/new-admin/graphql/types/index.js b/lib/new-admin/graphql/types/index.js index 58695f66..3e4531af 100644 --- a/lib/new-admin/graphql/types/index.js +++ b/lib/new-admin/graphql/types/index.js @@ -1,5 +1,6 @@ const { mergeTypeDefs } = require('@graphql-tools/merge') +const bill = require('./bill.type') const blacklist = require('./blacklist.type') const config = require('./config.type') const currency = require('./currency.type') @@ -7,8 +8,10 @@ const customer = require('./customer.type') const funding = require('./funding.type') const log = require('./log.type') const machine = require('./machine.type') +const notification = require('./notification.type') const pairing = require('./pairing.type') const promo = require('./promo.type') +const rates = require('./rates.type') const scalar = require('./scalar.type') const settings = require('./settings.type') const status = require('./status.type') @@ -16,6 +19,7 @@ const transaction = require('./transaction.type') const version = require('./version.type') const types = [ + bill, blacklist, config, currency, @@ -23,8 +27,10 @@ const types = [ funding, log, machine, + notification, pairing, promo, + rates, scalar, settings, status, diff --git a/lib/new-admin/graphql/types/notification.type.js b/lib/new-admin/graphql/types/notification.type.js new file mode 100644 index 00000000..87c16bbb --- /dev/null +++ b/lib/new-admin/graphql/types/notification.type.js @@ -0,0 +1,26 @@ +const { gql } = require('apollo-server-express') + +const typeDef = gql` + type Notification { + id: ID! + type: String + detail: JSON + message: String + created: Date + read: Boolean + valid: Boolean + } + + type Query { + notifications: [Notification] + alerts: [Notification] + hasUnreadNotifications: Boolean + } + + type Mutation { + toggleClearNotification(id: ID!, read: Boolean!): Notification + clearAllNotifications: Notification + } +` + +module.exports = typeDef diff --git a/lib/new-admin/graphql/types/rates.type.js b/lib/new-admin/graphql/types/rates.type.js new file mode 100644 index 00000000..6bee296f --- /dev/null +++ b/lib/new-admin/graphql/types/rates.type.js @@ -0,0 +1,16 @@ +const { gql } = require('apollo-server-express') + +const typeDef = gql` + type Rate { + code: String + name: String + rate: Float + } + + type Query { + cryptoRates: JSONObject + fiatRates: [Rate] + } +` + +module.exports = typeDef diff --git a/lib/new-admin/routes/authentication.js b/lib/new-admin/routes/authentication.js index c9aa0e48..889d5d8a 100644 --- a/lib/new-admin/routes/authentication.js +++ b/lib/new-admin/routes/authentication.js @@ -1,7 +1,7 @@ const express = require('express') const router = express.Router() -const login = require('../modules/login') +const login = require('../services/login') const options = require('../../options') const T = require('../../time') diff --git a/lib/new-admin/bills.js b/lib/new-admin/services/bills.js similarity index 95% rename from lib/new-admin/bills.js rename to lib/new-admin/services/bills.js index 20a6c03e..cde1421b 100644 --- a/lib/new-admin/bills.js +++ b/lib/new-admin/services/bills.js @@ -1,4 +1,4 @@ -const db = require('../db') +const db = require('../../db') // Get all bills with device id const getBills = () => { diff --git a/lib/new-admin/modules/funding.js b/lib/new-admin/services/funding.js similarity index 100% rename from lib/new-admin/modules/funding.js rename to lib/new-admin/services/funding.js diff --git a/lib/new-admin/modules/login.js b/lib/new-admin/services/login.js similarity index 100% rename from lib/new-admin/modules/login.js rename to lib/new-admin/services/login.js diff --git a/lib/new-admin/modules/machines.js b/lib/new-admin/services/machines.js similarity index 100% rename from lib/new-admin/modules/machines.js rename to lib/new-admin/services/machines.js diff --git a/lib/new-admin/modules/pairing.js b/lib/new-admin/services/pairing.js similarity index 100% rename from lib/new-admin/modules/pairing.js rename to lib/new-admin/services/pairing.js diff --git a/lib/new-admin/modules/server-logs.js b/lib/new-admin/services/server-logs.js similarity index 100% rename from lib/new-admin/modules/server-logs.js rename to lib/new-admin/services/server-logs.js diff --git a/lib/new-admin/modules/supervisor.js b/lib/new-admin/services/supervisor.js similarity index 100% rename from lib/new-admin/modules/supervisor.js rename to lib/new-admin/services/supervisor.js diff --git a/lib/new-admin/modules/transactions.js b/lib/new-admin/services/transactions.js similarity index 100% rename from lib/new-admin/modules/transactions.js rename to lib/new-admin/services/transactions.js