refactor db connection string

This commit is contained in:
Josh Harvey 2016-06-12 13:19:00 +03:00
parent 944de6fab0
commit 91e0fed95d
9 changed files with 47 additions and 82 deletions

View file

@ -1,14 +1,8 @@
#!/usr/bin/env node
var fs = require('fs')
var pgp = require('pg-promise')()
var psqlUrl = require('../lib/options').postgres
var psqlUrl
try {
psqlUrl = process.env.DATABASE_URL || JSON.parse(fs.readFileSync('/etc/lamassu.json')).postgresql
} catch (ex) {
psqlUrl = 'psql://lamassu:lamassu@localhost/lamassu'
}
var db = pgp(psqlUrl)
db.manyOrNone(`select * from transactions where incoming=false

View file

@ -3,34 +3,23 @@
'use strict'
var fs = require('fs')
const os = require('os')
var path = require('path')
var createServer = require('../lib/app.js')
var argv = require('minimist')(process.argv.slice(2))
var options
try {
options = JSON.parse(fs.readFileSync('/etc/lamassu.json'))
} catch (err) {
try {
const homePath = path.resolve(os.homedir(), '.lamassu', 'lamassu.json')
options = JSON.parse(fs.readFileSync(homePath))
} catch (err2) {
console.log('Missing configuration file -- exiting.')
process.exit(1)
}
}
process.env.DATABASE_URL = options.postgresql
var options = require('../lib/options')
var port = process.env.PORT || 3000
var httpOnly = options.httpOnly || argv.http
if (!httpOnly) {
options.https = {
key: fs.readFileSync(options.certKeyPath),
cert: fs.readFileSync(options.certPath)
try {
options.https = {
key: fs.readFileSync(options.certKeyPath),
cert: fs.readFileSync(options.certPath)
}
} catch (err) {
console.log('Please configure your certificate.')
console.log(err)
process.exit(1)
}
}

20
bin/ssu
View file

@ -8,7 +8,7 @@ var argv = process.argv.slice(2)
var pgp = require('pg-promise')()
var inquirer = require('inquirer')
var R = require('ramda')
var fs = require('fs')
var psqlUrl = require('../lib/options').postgres
var cmd = argv[0]
@ -130,12 +130,6 @@ function reboot () {
}
function cryptoActivate (code, on) {
var psqlUrl
try {
psqlUrl = process.env.DATABASE_URL || JSON.parse(fs.readFileSync('/etc/lamassu.json')).postgresql
} catch (ex) {
psqlUrl = 'psql://lamassu:lamassu@localhost/lamassu'
}
var db = pgp(psqlUrl)
return db.one('select data from user_config where type=$1', 'exchanges')
@ -180,12 +174,6 @@ function crypto () {
code = code.toUpperCase()
var psqlUrl
try {
psqlUrl = process.env.DATABASE_URL || JSON.parse(fs.readFileSync('/etc/lamassu.json')).postgresql
} catch (ex) {
psqlUrl = 'psql://lamassu:lamassu@localhost/lamassu'
}
var db = pgp(psqlUrl)
return db.one('select data from user_config where type=$1', 'exchanges')
@ -211,12 +199,6 @@ function crypto () {
}
function connect () {
var psqlUrl
try {
psqlUrl = process.env.DATABASE_URL || JSON.parse(fs.readFileSync('/etc/lamassu.json')).postgresql
} catch (ex) {
psqlUrl = 'psql://lamassu:lamassu@localhost/lamassu'
}
return pgp(psqlUrl)
}

View file

@ -11,6 +11,7 @@ var _ = require('lodash');
var pg = require('pg');
var uuid = require('node-uuid');
var async = require('async');
var psqlUrl = require('../lib/options').postgres
var raqiaPath = path.join(__dirname, '..', 'raqia.json');
@ -33,13 +34,6 @@ try {
process.exit(2);
}
var psqlUrl;
try {
psqlUrl = process.env.DATABASE_URL || JSON.parse(fs.readFileSync('/etc/lamassu.json')).postgresql;
} catch (ex) {
psqlUrl = 'psql://lamassu:lamassu@localhost/lamassu';
}
var client = new pg.Client(psqlUrl);
client.connect(function(err) {
if (err) return console.log(err);

View file

@ -1,8 +1,8 @@
require('es6-promise').polyfill()
var fs = require('fs')
var notifier = require('../lib/notifier')
var db = require('../lib/postgresql_interface')
var psqlUrl = require('../lib/options').postgres
function getBalances () {
return [
@ -11,13 +11,6 @@ function getBalances () {
]
}
var psqlUrl
try {
psqlUrl = process.env.DATABASE_URL || JSON.parse(fs.readFileSync('/etc/lamassu.json')).postgresql
} catch (ex) {
psqlUrl = 'psql://lamassu:lamassu@localhost/lamassu'
}
db.init(psqlUrl)
notifier.init(db, getBalances, {lowBalanceThreshold: 10})
console.log('DEBUG0')

View file

@ -1,13 +1,7 @@
var fs = require('fs')
var pgp = require('pg-promise')()
var psqlUrl = require('../lib/options').postgres
function connect () {
var psqlUrl
try {
psqlUrl = process.env.DATABASE_URL || JSON.parse(fs.readFileSync('/etc/lamassu.json')).postgresql
} catch (ex) {
psqlUrl = 'psql://lamassu:lamassu@localhost/lamassu'
}
return pgp(psqlUrl)
}
exports.connect = connect

29
lib/options.js Normal file
View file

@ -0,0 +1,29 @@
'use strict'
var fs = require('fs')
var path = require('path')
var os = require('os')
var options
var configPath
try {
configPath = '/etc/lamassu.json'
options = JSON.parse(fs.readFileSync(configPath))
} catch (err) {
try {
configPath = path.resolve(os.homedir(), '.lamassu', 'lamassu.json')
options = JSON.parse(fs.readFileSync(configPath))
} catch (err2) {
console.log('Missing configuration file -- exiting.')
process.exit(1)
}
}
var psqlUrl = options.postgres
if (!psqlUrl) {
console.log('Missing postgres entry in configuration file: %s', configPath)
process.exit(2)
}
module.exports = options

View file

@ -1,24 +1,15 @@
'use strict';
var fs = require('fs');
var pg = require('pg');
var async = require('async');
var conString;
try {
conString = process.env.DATABASE_URL ||
JSON.parse(fs.readFileSync('/etc/lamassu.json')).postgresql;
}
catch (ex) {
conString = 'psql://lamassu:lamassu@localhost/lamassu';
}
var psqlUrl = require('../lib/options').postgres
exports.query = function query(sql, cb) {
exports.multi([sql], cb);
};
exports.silentQuery = function query(sql, cb) {
pg.connect(conString, function(err, client, done) {
pg.connect(psqlUrl, function(err, client, done) {
if (err) {
console.log(err.message);
return cb(err);
@ -32,7 +23,7 @@ exports.silentQuery = function query(sql, cb) {
};
exports.multi = function multi(sqls, cb) {
pg.connect(conString, function(err, client, done) {
pg.connect(psqlUrl, function(err, client, done) {
if (err) {
console.log(err.message);
return cb(err);

View file

@ -6,5 +6,4 @@
- throttle status check for 3rd services like bitgo
- load stuff from master config file
- set up DATABASE_URL environment variable in lamassu-server
- add default configuration