Skip to content

Commit

Permalink
Cleaned up some of the imports.
Browse files Browse the repository at this point in the history
  • Loading branch information
orlandotorres committed Apr 17, 2018
1 parent 33cab97 commit b1a9e4d
Show file tree
Hide file tree
Showing 8 changed files with 43 additions and 38 deletions.
15 changes: 7 additions & 8 deletions src/app.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
import express from 'express';
import compression from 'compression'; // compresses requests
import session from 'express-session';
import bodyParser from 'body-parser';
import logger from './util/logger';
import lusca from 'lusca';
import dotenv from 'dotenv';
import compression from 'compression';
import mongo from 'connect-mongo';
import dotenv from 'dotenv';
import express from 'express';
import flash from 'express-flash';
import path from 'path';
import session from 'express-session';
import expressValidator from 'express-validator';
import lusca from 'lusca';
import mongoose from 'mongoose';
import passport from 'passport';
import expressValidator from 'express-validator';
import path from 'path';
import { MONGODB_URI, SESSION_SECRET } from './util/secrets';

const MongoStore = mongo(session);
Expand Down
4 changes: 2 additions & 2 deletions src/controllers/api.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { Response, Request, NextFunction } from 'express';
import { RequestHandler } from 'express';

/**
* GET /api
* List of API examples.
*/
export let getApi = (req: Request, res: Response) => {
export let getApi: RequestHandler = (req, res) => {
res.render('api/index', {
title: 'API Examples',
});
Expand Down
6 changes: 3 additions & 3 deletions src/controllers/contact.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import nodemailer from 'nodemailer';
import { Request, Response } from 'express';
import { RequestHandler } from 'express';

const transporter = nodemailer.createTransport({
service: 'SendGrid',
Expand All @@ -13,7 +13,7 @@ const transporter = nodemailer.createTransport({
* GET /contact
* Contact form page.
*/
export let getContact = (req: Request, res: Response) => {
export let getContact: RequestHandler = (req, res) => {
res.render('contact', {
title: 'Contact',
});
Expand All @@ -23,7 +23,7 @@ export let getContact = (req: Request, res: Response) => {
* POST /contact
* Send a contact form via Nodemailer.
*/
export let postContact = (req: Request, res: Response) => {
export let postContact: RequestHandler = (req, res) => {
req.assert('name', 'Name cannot be blank').notEmpty();
req.assert('email', 'Email is not valid').isEmail();
req.assert('message', 'Message cannot be blank').notEmpty();
Expand Down
4 changes: 2 additions & 2 deletions src/controllers/home.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { Request, Response } from 'express';
import { RequestHandler } from 'express';

/**
* GET /
* Home page.
*/
export let index = (req: Request, res: Response) => {
export let index: RequestHandler = (req, res) => {
res.render('home', {
title: 'Home',
});
Expand Down
32 changes: 16 additions & 16 deletions src/controllers/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@ import async from 'async';
import crypto from 'crypto';
import nodemailer from 'nodemailer';
import passport from 'passport';
import { default as User, UserModel, AuthToken } from '../models/User';
import { Request, Response, NextFunction } from 'express';
import { RequestHandler } from 'express';
import { IVerifyOptions } from 'passport-local';
import { WriteError } from 'mongodb';
import { default as User, UserModel, AuthToken } from '../models/User';

/**
* GET /login
* Login page.
*/
export let getLogin = (req: Request, res: Response) => {
export let getLogin: RequestHandler = (req, res) => {
if (req.user) {
return res.redirect('/');
}
Expand All @@ -24,7 +24,7 @@ export let getLogin = (req: Request, res: Response) => {
* POST /login
* Sign in using email and password.
*/
export let postLogin = (req: Request, res: Response, next: NextFunction) => {
export let postLogin: RequestHandler = (req, res, next) => {
req.assert('email', 'Email is not valid').isEmail();
req.assert('password', 'Password cannot be blank').notEmpty();
req.sanitize('email').normalizeEmail({ gmail_remove_dots: false });
Expand Down Expand Up @@ -58,7 +58,7 @@ export let postLogin = (req: Request, res: Response, next: NextFunction) => {
* GET /logout
* Log out.
*/
export let logout = (req: Request, res: Response) => {
export let logout: RequestHandler = (req, res) => {
req.logout();
res.redirect('/');
};
Expand All @@ -67,7 +67,7 @@ export let logout = (req: Request, res: Response) => {
* GET /signup
* Signup page.
*/
export let getSignup = (req: Request, res: Response) => {
export let getSignup: RequestHandler = (req, res) => {
if (req.user) {
return res.redirect('/');
}
Expand All @@ -80,7 +80,7 @@ export let getSignup = (req: Request, res: Response) => {
* POST /signup
* Create a new local account.
*/
export let postSignup = (req: Request, res: Response, next: NextFunction) => {
export let postSignup: RequestHandler = (req, res, next) => {
req.assert('email', 'Email is not valid').isEmail();
req.assert('password', 'Password must be at least 4 characters long').len({ min: 4 });
req.assert('confirmPassword', 'Passwords do not match').equals(req.body.password);
Expand Down Expand Up @@ -124,7 +124,7 @@ export let postSignup = (req: Request, res: Response, next: NextFunction) => {
* GET /account
* Profile page.
*/
export let getAccount = (req: Request, res: Response) => {
export let getAccount: RequestHandler = (req, res) => {
res.render('account/profile', {
title: 'Account Management',
});
Expand All @@ -134,7 +134,7 @@ export let getAccount = (req: Request, res: Response) => {
* POST /account/profile
* Update profile information.
*/
export let postUpdateProfile = (req: Request, res: Response, next: NextFunction) => {
export let postUpdateProfile: RequestHandler = (req, res, next) => {
req.assert('email', 'Please enter a valid email address.').isEmail();
req.sanitize('email').normalizeEmail({ gmail_remove_dots: false });

Expand Down Expand Up @@ -174,7 +174,7 @@ export let postUpdateProfile = (req: Request, res: Response, next: NextFunction)
* POST /account/password
* Update current password.
*/
export let postUpdatePassword = (req: Request, res: Response, next: NextFunction) => {
export let postUpdatePassword: RequestHandler = (req, res, next) => {
req.assert('password', 'Password must be at least 4 characters long').len({ min: 4 });
req.assert('confirmPassword', 'Passwords do not match').equals(req.body.password);

Expand Down Expand Up @@ -204,7 +204,7 @@ export let postUpdatePassword = (req: Request, res: Response, next: NextFunction
* POST /account/delete
* Delete user account.
*/
export let postDeleteAccount = (req: Request, res: Response, next: NextFunction) => {
export let postDeleteAccount: RequestHandler = (req, res, next) => {
User.remove({ _id: req.user.id }, err => {
if (err) {
return next(err);
Expand All @@ -219,7 +219,7 @@ export let postDeleteAccount = (req: Request, res: Response, next: NextFunction)
* GET /account/unlink/:provider
* Unlink OAuth provider.
*/
export let getOauthUnlink = (req: Request, res: Response, next: NextFunction) => {
export let getOauthUnlink: RequestHandler = (req, res, next) => {
const provider = req.params.provider;
User.findById(req.user.id, (err, user: any) => {
if (err) {
Expand All @@ -241,7 +241,7 @@ export let getOauthUnlink = (req: Request, res: Response, next: NextFunction) =>
* GET /reset/:token
* Reset Password page.
*/
export let getReset = (req: Request, res: Response, next: NextFunction) => {
export let getReset: RequestHandler = (req, res, next) => {
if (req.isAuthenticated()) {
return res.redirect('/');
}
Expand All @@ -266,7 +266,7 @@ export let getReset = (req: Request, res: Response, next: NextFunction) => {
* POST /reset/:token
* Process the reset password request.
*/
export let postReset = (req: Request, res: Response, next: NextFunction) => {
export let postReset: RequestHandler = (req, res, next) => {
req.assert('password', 'Password must be at least 4 characters long.').len({ min: 4 });
req.assert('confirm', 'Passwords must match.').equals(req.body.password);

Expand Down Expand Up @@ -339,7 +339,7 @@ export let postReset = (req: Request, res: Response, next: NextFunction) => {
* GET /forgot
* Forgot Password page.
*/
export let getForgot = (req: Request, res: Response) => {
export let getForgot: RequestHandler = (req, res) => {
if (req.isAuthenticated()) {
return res.redirect('/');
}
Expand All @@ -352,7 +352,7 @@ export let getForgot = (req: Request, res: Response) => {
* POST /forgot
* Create a random token, then the send user an email with a reset link.
*/
export let postForgot = (req: Request, res: Response, next: NextFunction) => {
export let postForgot: RequestHandler = (req, res, next) => {
req.assert('email', 'Please enter a valid email address.').isEmail();
req.sanitize('email').normalizeEmail({ gmail_remove_dots: false });

Expand Down
5 changes: 5 additions & 0 deletions src/util/environment.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export const environment = {
target: process.env.NODE_ENV,
isProduction: process.env.NODE_ENV === 'production',
isDebug: process.env.NODE_ENV !== 'production',
};
6 changes: 3 additions & 3 deletions src/util/logger.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import winston from 'winston';
import { Logger } from 'winston';
import { ENVIRONMENT } from './secrets';
import { environment } from './environment';

const logger = new Logger({
transports: [
new winston.transports.Console({
level: process.env.NODE_ENV === 'production' ? 'error' : 'debug',
level: environment.isProduction ? 'error' : 'debug',
}),
new winston.transports.File({ filename: 'debug.log', level: 'debug' }),
],
});

if (process.env.NODE_ENV !== 'production') {
if (environment.isDebug) {
logger.debug('Logging initialized at debug level');
}

Expand Down
9 changes: 5 additions & 4 deletions src/util/secrets.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import logger from './logger';
import dotenv from 'dotenv';
import fs from 'fs';
import logger from './logger';
import { environment } from './environment';

if (fs.existsSync('.env')) {
logger.debug('Using .env file to supply config environment variables');
Expand All @@ -9,11 +10,11 @@ if (fs.existsSync('.env')) {
logger.debug('Using .env.example file to supply config environment variables');
dotenv.config({ path: '.env.example' }); // you can delete this after you create your own .env file!
}
export const ENVIRONMENT = process.env.NODE_ENV;
const prod = ENVIRONMENT === 'production'; // Anything else is treated as 'dev'

export const SESSION_SECRET = process.env['SESSION_SECRET'];
export const MONGODB_URI = prod ? process.env['MONGODB_URI'] : process.env['MONGODB_URI_LOCAL'];
export const MONGODB_URI = environment.isProduction
? process.env['MONGODB_URI']
: process.env['MONGODB_URI_LOCAL'];

if (!SESSION_SECRET) {
logger.error('No client secret. Set SESSION_SECRET environment variable.');
Expand Down

0 comments on commit b1a9e4d

Please sign in to comment.