From 02ef0fc8d18e3193a5e59efb2cdf40e3ba217d71 Mon Sep 17 00:00:00 2001 From: Eric Sandine Date: Tue, 14 Jul 2020 22:48:07 -0700 Subject: [PATCH 1/5] add srv connection string --- src/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index da417698..485d81b8 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,5 @@ #!/usr/bin/env node + 'use strict' require('dotenv').config() @@ -32,7 +33,8 @@ mongoose.connect(dbUrl, { useNewUrlParser: true, useCreateIndex: true, reconnectTries: Number.MAX_VALUE, - reconnectInterval: 1000 + reconnectInterval: 1000, + useUnifiedTopology: true, }).then(() => { @@ -60,4 +62,4 @@ mongoose.connect(dbUrl, { signale.fatal(err) process.exit(1) -}) +}) \ No newline at end of file From b04e0abd449e45e5cf0695f5094ba23f098ade7a Mon Sep 17 00:00:00 2001 From: Eric Sandine Date: Tue, 14 Jul 2020 22:53:27 -0700 Subject: [PATCH 2/5] add heroku.yml --- heroku.yml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 heroku.yml diff --git a/heroku.yml b/heroku.yml new file mode 100644 index 00000000..8eec25b9 --- /dev/null +++ b/heroku.yml @@ -0,0 +1,3 @@ +build: + docker: + web: Dockerfile From 26cbc75716ac92ef72081e4ad49125af475216eb Mon Sep 17 00:00:00 2001 From: Eric Sandine Date: Wed, 15 Jul 2020 18:27:05 -0700 Subject: [PATCH 3/5] Add srv db url support --- src/index.js | 12 ++++++++---- src/utils/isSrvUrl.js | 5 +++++ test/utils/isSrvUrl.js | 19 +++++++++++++++++++ 3 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 src/utils/isSrvUrl.js create mode 100644 test/utils/isSrvUrl.js diff --git a/src/index.js b/src/index.js index 485d81b8..b2540ee0 100644 --- a/src/index.js +++ b/src/index.js @@ -9,6 +9,7 @@ const mongoose = require('mongoose') const server = require('./server') const signale = require('./utils/signale') const isDemo = require('./utils/isDemo') +const isSrvUrl = require('./utils/isSrvUrl') const fillDatabase = require('./utils/fillDatabase') const stripUrlAuth = require('./utils/stripUrlAuth') @@ -28,15 +29,18 @@ if (dbUrl == null) { signale.await(`Connecting to ${ stripUrlAuth(dbUrl) }`) -mongoose.connect(dbUrl, { - +const mongooseConfig = { useNewUrlParser: true, useCreateIndex: true, reconnectTries: Number.MAX_VALUE, reconnectInterval: 1000, - useUnifiedTopology: true, +} + +if (isSrvUrl(dbUrl)) { + mongooseConfig.useUnifiedTopology = true +}; -}).then(() => { +mongoose.connect(dbUrl, mongooseConfig).then(() => { signale.success(`Connected to ${ stripUrlAuth(dbUrl) }`) signale.start(`Starting the server`) diff --git a/src/utils/isSrvUrl.js b/src/utils/isSrvUrl.js new file mode 100644 index 00000000..23de01af --- /dev/null +++ b/src/utils/isSrvUrl.js @@ -0,0 +1,5 @@ +'use strict' + +module.exports = (url) => { + return url.split(":")[0].includes("srv") +} \ No newline at end of file diff --git a/test/utils/isSrvUrl.js b/test/utils/isSrvUrl.js new file mode 100644 index 00000000..1b8e015f --- /dev/null +++ b/test/utils/isSrvUrl.js @@ -0,0 +1,19 @@ +'use strict' + +const test = require('ava') + +const isSrvUrl = require('../../src/utils/isSrvUrl') +const standarConnectionString = "mongodb://localhost:27017/ackee" +const srvConnectionString = "mongodb+srv://username:badpw@cluster0-OMITTED.mongodb.net/ackee" + +test('return standard connection string is false', async (t) => { + + t.is(isSrvUrl(standarConnectionString), false) + +}) + +test('return srv connection string is false', async (t) => { + + t.is(isSrvUrl(srvConnectionString), true) + +}) \ No newline at end of file From a943f1ea1056eb8e271c85d48a9bd058ae5c8623 Mon Sep 17 00:00:00 2001 From: Eric Sandine Date: Wed, 15 Jul 2020 18:31:56 -0700 Subject: [PATCH 4/5] pr cleanup --- heroku.yml | 3 -- src/index.js | 104 ++++++++++++++++++++--------------------- src/utils/isSrvUrl.js | 6 +-- test/utils/isSrvUrl.js | 27 +++++------ 4 files changed, 66 insertions(+), 74 deletions(-) delete mode 100644 heroku.yml diff --git a/heroku.yml b/heroku.yml deleted file mode 100644 index 8eec25b9..00000000 --- a/heroku.yml +++ /dev/null @@ -1,3 +0,0 @@ -build: - docker: - web: Dockerfile diff --git a/src/index.js b/src/index.js index b2540ee0..cfec6328 100644 --- a/src/index.js +++ b/src/index.js @@ -1,69 +1,67 @@ #!/usr/bin/env node -'use strict' +"use strict"; +require("dotenv").config(); -require('dotenv').config() +const mongoose = require("mongoose"); -const mongoose = require('mongoose') +const server = require("./server"); +const signale = require("./utils/signale"); +const isDemo = require("./utils/isDemo"); +const isSrvUrl = require("./utils/isSrvUrl"); +const fillDatabase = require("./utils/fillDatabase"); +const stripUrlAuth = require("./utils/stripUrlAuth"); -const server = require('./server') -const signale = require('./utils/signale') -const isDemo = require('./utils/isDemo') -const isSrvUrl = require('./utils/isSrvUrl') -const fillDatabase = require('./utils/fillDatabase') -const stripUrlAuth = require('./utils/stripUrlAuth') +const port = process.env.ACKEE_PORT || process.env.PORT || 3000; +const dbUrl = process.env.ACKEE_MONGODB || process.env.MONGODB_URI; +const serverUrl = `http://localhost:${port}`; -const port = process.env.ACKEE_PORT || process.env.PORT || 3000 -const dbUrl = process.env.ACKEE_MONGODB || process.env.MONGODB_URI -const serverUrl = `http://localhost:${ port }` +mongoose.set("useFindAndModify", false); -mongoose.set('useFindAndModify', false) - -server.on('listening', () => signale.watch(`Listening on ${ serverUrl }`)) -server.on('error', (err) => signale.fatal(err)) +server.on("listening", () => signale.watch(`Listening on ${serverUrl}`)); +server.on("error", (err) => signale.fatal(err)); if (dbUrl == null) { - signale.fatal('MongoDB connection URI missing in environment') - process.exit(1) + signale.fatal("MongoDB connection URI missing in environment"); + process.exit(1); } -signale.await(`Connecting to ${ stripUrlAuth(dbUrl) }`) +signale.await(`Connecting to ${stripUrlAuth(dbUrl)}`); const mongooseConfig = { - useNewUrlParser: true, - useCreateIndex: true, - reconnectTries: Number.MAX_VALUE, - reconnectInterval: 1000, -} - -if (isSrvUrl(dbUrl)) { - mongooseConfig.useUnifiedTopology = true + useNewUrlParser: true, + useCreateIndex: true, + reconnectTries: Number.MAX_VALUE, + reconnectInterval: 1000, }; -mongoose.connect(dbUrl, mongooseConfig).then(() => { - - signale.success(`Connected to ${ stripUrlAuth(dbUrl) }`) - signale.start(`Starting the server`) - - server.listen(port) - - if (isDemo === true) { - - const job = fillDatabase(serverUrl) - const date = job.nextInvocation() - - const formattedDate = `${ date.getDate() }.${ date.getMonth() }.${ date.getFullYear() }` - const formattedTime = `${ date.getHours() }:${ date.getMinutes() }:${ date.getSeconds() }` - - signale.info('Demo mode enabled') - signale.info('New records will be added minutely') - signale.info(`Next record fill on ${ formattedDate } at ${ formattedTime } o'clock`) - - } - -}).catch((err) => { - - signale.fatal(err) - process.exit(1) +if (isSrvUrl(dbUrl)) { + mongooseConfig.useUnifiedTopology = true; +} -}) \ No newline at end of file +mongoose + .connect(dbUrl, mongooseConfig) + .then(() => { + signale.success(`Connected to ${stripUrlAuth(dbUrl)}`); + signale.start(`Starting the server`); + + server.listen(port); + + if (isDemo === true) { + const job = fillDatabase(serverUrl); + const date = job.nextInvocation(); + + const formattedDate = `${date.getDate()}.${date.getMonth()}.${date.getFullYear()}`; + const formattedTime = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`; + + signale.info("Demo mode enabled"); + signale.info("New records will be added minutely"); + signale.info( + `Next record fill on ${formattedDate} at ${formattedTime} o'clock` + ); + } + }) + .catch((err) => { + signale.fatal(err); + process.exit(1); + }); diff --git a/src/utils/isSrvUrl.js b/src/utils/isSrvUrl.js index 23de01af..f1892377 100644 --- a/src/utils/isSrvUrl.js +++ b/src/utils/isSrvUrl.js @@ -1,5 +1,5 @@ -'use strict' +"use strict"; module.exports = (url) => { - return url.split(":")[0].includes("srv") -} \ No newline at end of file + return url.split(":")[0].includes("srv"); +}; diff --git a/test/utils/isSrvUrl.js b/test/utils/isSrvUrl.js index 1b8e015f..a53d766a 100644 --- a/test/utils/isSrvUrl.js +++ b/test/utils/isSrvUrl.js @@ -1,19 +1,16 @@ -'use strict' +"use strict"; -const test = require('ava') +const test = require("ava"); -const isSrvUrl = require('../../src/utils/isSrvUrl') -const standarConnectionString = "mongodb://localhost:27017/ackee" -const srvConnectionString = "mongodb+srv://username:badpw@cluster0-OMITTED.mongodb.net/ackee" +const isSrvUrl = require("../../src/utils/isSrvUrl"); +const standarConnectionString = "mongodb://localhost:27017/ackee"; +const srvConnectionString = + "mongodb+srv://username:badpw@cluster0-OMITTED.mongodb.net/ackee"; -test('return standard connection string is false', async (t) => { +test("return standard connection string is false", async (t) => { + t.is(isSrvUrl(standarConnectionString), false); +}); - t.is(isSrvUrl(standarConnectionString), false) - -}) - -test('return srv connection string is false', async (t) => { - - t.is(isSrvUrl(srvConnectionString), true) - -}) \ No newline at end of file +test("return srv connection string is false", async (t) => { + t.is(isSrvUrl(srvConnectionString), true); +}); From 60927ddee0479ac2ea909860283b897934d7a147 Mon Sep 17 00:00:00 2001 From: Eric Sandine Date: Wed, 15 Jul 2020 18:35:19 -0700 Subject: [PATCH 5/5] fix bad format on save --- src/index.js | 104 +++++++++++++++++++++++++-------------------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/src/index.js b/src/index.js index cfec6328..b80cb713 100644 --- a/src/index.js +++ b/src/index.js @@ -1,67 +1,67 @@ #!/usr/bin/env node +'use strict' +require('dotenv').config() -"use strict"; -require("dotenv").config(); +const mongoose = require('mongoose') -const mongoose = require("mongoose"); +const server = require('./server') +const signale = require('./utils/signale') +const isDemo = require('./utils/isDemo') +const isSrvUrl = require('./utils/isSrvUrl') +const fillDatabase = require('./utils/fillDatabase') +const stripUrlAuth = require('./utils/stripUrlAuth') -const server = require("./server"); -const signale = require("./utils/signale"); -const isDemo = require("./utils/isDemo"); -const isSrvUrl = require("./utils/isSrvUrl"); -const fillDatabase = require("./utils/fillDatabase"); -const stripUrlAuth = require("./utils/stripUrlAuth"); +const port = process.env.ACKEE_PORT || process.env.PORT || 3000 +const dbUrl = process.env.ACKEE_MONGODB || process.env.MONGODB_URI +const serverUrl = `http://localhost:${ port }` -const port = process.env.ACKEE_PORT || process.env.PORT || 3000; -const dbUrl = process.env.ACKEE_MONGODB || process.env.MONGODB_URI; -const serverUrl = `http://localhost:${port}`; +mongoose.set('useFindAndModify', false) -mongoose.set("useFindAndModify", false); - -server.on("listening", () => signale.watch(`Listening on ${serverUrl}`)); -server.on("error", (err) => signale.fatal(err)); +server.on('listening', () => signale.watch(`Listening on ${ serverUrl }`)) +server.on('error', (err) => signale.fatal(err)) if (dbUrl == null) { - signale.fatal("MongoDB connection URI missing in environment"); - process.exit(1); + signale.fatal('MongoDB connection URI missing in environment') + process.exit(1) } -signale.await(`Connecting to ${stripUrlAuth(dbUrl)}`); +signale.await(`Connecting to ${ stripUrlAuth(dbUrl) }`) const mongooseConfig = { - useNewUrlParser: true, - useCreateIndex: true, - reconnectTries: Number.MAX_VALUE, - reconnectInterval: 1000, -}; + useNewUrlParser: true, + useCreateIndex: true, + reconnectTries: Number.MAX_VALUE, + reconnectInterval: 1000, +} if (isSrvUrl(dbUrl)) { - mongooseConfig.useUnifiedTopology = true; -} + mongooseConfig.useUnifiedTopology = true +}; + +mongoose.connect(dbUrl, mongooseConfig).then(() => { + + signale.success(`Connected to ${ stripUrlAuth(dbUrl) }`) + signale.start(`Starting the server`) + + server.listen(port) + + if (isDemo === true) { + + const job = fillDatabase(serverUrl) + const date = job.nextInvocation() + + const formattedDate = `${ date.getDate() }.${ date.getMonth() }.${ date.getFullYear() }` + const formattedTime = `${ date.getHours() }:${ date.getMinutes() }:${ date.getSeconds() }` + + signale.info('Demo mode enabled') + signale.info('New records will be added minutely') + signale.info(`Next record fill on ${ formattedDate } at ${ formattedTime } o'clock`) + + } + +}).catch((err) => { + + signale.fatal(err) + process.exit(1) -mongoose - .connect(dbUrl, mongooseConfig) - .then(() => { - signale.success(`Connected to ${stripUrlAuth(dbUrl)}`); - signale.start(`Starting the server`); - - server.listen(port); - - if (isDemo === true) { - const job = fillDatabase(serverUrl); - const date = job.nextInvocation(); - - const formattedDate = `${date.getDate()}.${date.getMonth()}.${date.getFullYear()}`; - const formattedTime = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`; - - signale.info("Demo mode enabled"); - signale.info("New records will be added minutely"); - signale.info( - `Next record fill on ${formattedDate} at ${formattedTime} o'clock` - ); - } - }) - .catch((err) => { - signale.fatal(err); - process.exit(1); - }); +}) \ No newline at end of file