Skip to content

Instantly share code, notes, and snippets.

View tarusharora's full-sized avatar
🎯
Focusing

Tarush Arora tarusharora

🎯
Focusing
View GitHub Profile
@tarusharora
tarusharora / db.js
Created February 18, 2019 11:55
mongoDB connector using mongoose
const mongoose = require('mongoose');
const connectMongo = (mongoURI) => {
mongoose.connect(mongoURI, { useNewUrlParser: true });
mongoose.connection.on('error', (err) => {
console.log(err);
process.exit();
});
};
@tarusharora
tarusharora / user-route.js
Created February 16, 2019 14:42
route file for user related routes
const { getUsersCtrl } = require('../controllers/userController')
module.exports = async function (fastify) {
fastify.get('/users', getUsersCtrl)
}
@tarusharora
tarusharora / userController.js
Created February 16, 2019 14:39
user controller to respond to get users API request
const { getUsers } = require('../adaptors/userAdaptor');
const getUsersCtrl = async (req, res) => {
try {
const { page } = req.query;
const users = await getUsers({ page });
res.send(users);
}
catch (err) {
throw err;
@tarusharora
tarusharora / userAdaptor.js
Last active February 16, 2019 14:36
adaptor to connect with the outside world using httpClient.js
const nconf =require('nconf');
const joinUrl = require('url-join');
const { getRequest } = require('../utils/httpClient');
const usersAPIUrl = nconf.get('url.usersAPI');
const getUsers = ({page = 1}) => getRequest({
url: joinUrl(usersAPIUrl, 'users', `?page=${page}`)
})
@tarusharora
tarusharora / httpClient.js
Created February 16, 2019 13:40
http client using request-promise-native
const request = require('request-promise-native');
const nconf = require('nconf');
const externalAPITimeout = nconf.get('app.externalAPITimeout');
const getRequest = ({url, options}) => request.get(url, {...options, timeout: externalAPITimeout, json:true});
module.exports = {
getRequest
}
@tarusharora
tarusharora / launch.json
Created December 30, 2018 11:36
sampe VS Code debugging launch configuration
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
@tarusharora
tarusharora / server.js
Created December 29, 2018 12:03
Server with fastify autoload
// import dependencies from npm
const Fastify = require('fastify');
const path = require('path');
const AutoLoad = require('fastify-autoload');
const uuidv4 = require('uuid/v4');
// create request ids
const createRequestId = () => uuidv4();
const createServer = (options) => {
@tarusharora
tarusharora / root.js
Last active December 29, 2018 10:57
api/routes/root.js
// api/routes/root.js
module.exports = async function (fastify, opts) {
fastify.get('/', async function (request, reply) {
return { hello: "World" }
})
}
@tarusharora
tarusharora / appSettings.json
Created December 29, 2018 09:04
App settings part 2
{
"logSeverity": "info",
"app": {
"isEmailVerificationEnabled": false,
"emailTokenExpiryInSeconds": "7d",
"userPasswordRegex" : "^(?=.{6,})",
"userJwtExpiry" : "2d"
},
"url" : {
"self": "",
@tarusharora
tarusharora / server.js
Last active December 28, 2018 23:02
Server file Part 2
// import dependencies from npm
const Fastify = require('fastify');
const path = require('path');
const AutoLoad = require('fastify-autoload');
const uuidv4 = require('uuid/v4');
// create request ids
const createRequestId = () => uuidv4();
const createServer = (options) => {