This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
did:3:kjzl6cwe1jw14aolsoc0cc6l8n463w9qxm0d33ofk8a2vho55vzg7nht9x7hyhs |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import express from "express"; | |
import debug from "debug"; | |
import config from "./config"; | |
const app: express.Application = express(); | |
const log = debug("logging"); | |
config(app); | |
app.listen(4000, () => log("Express server running on 4000")); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import express from "express"; | |
import { logger } from "../middlewares"; | |
import router from "../router"; | |
export default (app) => { | |
app.use(express.json()); | |
app.use(logger); | |
app.use(router); | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import debug from "debug"; | |
const log = debug("logging"); | |
export const logger = (req: any, res: any, next: any) { | |
log(`${req.path} +++++++++++++++++++ ${res.statusCode}`); | |
next(); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export class ErrorResponse extends Error { | |
c: number; | |
constructor(c: number, message: string) { | |
super(message); | |
this.c = c; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Router } from "express"; | |
import { UserController } from "../controllers"; | |
import { Auth } from "../middlewares"; | |
const router = Router(); | |
router.post("/register", UserController.register); | |
router.post("/login", UserController.login); | |
router.get("/logged_user", Auth.checkToken, UserController.getLoggedUser); | |
router.get("/logout", Auth.checkToken, UserController.logout); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import jwt from "jsonwebtoken"; | |
import { User, Session } from "../db"; | |
export class Auth { | |
static async checkToken(req: any, res: any, next: any) { | |
try { | |
const { authorization } = req.headers; | |
// Throw error if authorization header is not present in the request | |
if (!authorization) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import express from "express"; | |
import jwt from "jsonwebtoken"; | |
import bcrypt from "bcryptjs"; | |
import { v4 as uuid } from "uuid"; | |
import { User, Session } from "../db"; | |
import { ErrorResponse } from "../custom"; | |
export class UserController { | |
static async register(req: express.Request, res: express.Response) { | |
try { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { AuthModel } from "./auth"; | |
import { SessionModel } from "./session"; | |
export const User = new AuthModel(); | |
export const Session = new SessionModel(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import mongoose from "mongoose"; | |
export class SessionModel { | |
model: mongoose.Model<mongoose.Document, {}>; | |
constructor() { | |
this.define(); | |
} | |
private define() { | |
this.model = mongoose.model("Session", new mongoose.Schema({ |
NewerOlder