express-typeorm-rest-boilerplate
Version:
Boilerplate code to get started with building RESTful API Services
57 lines • 2.67 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = require("express");
const typedi_1 = require("typedi");
const celebrate_1 = require("celebrate");
const UserService_1 = __importDefault(require("../services/UserService"));
const route = express_1.Router();
route.post('/register', celebrate_1.celebrate({
body: celebrate_1.Joi.object({
firstName: celebrate_1.Joi.string().required(),
lastName: celebrate_1.Joi.string().required(),
email: celebrate_1.Joi.string().required(),
password: celebrate_1.Joi.string().required(),
}),
}), (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
const logger = typedi_1.Container.get('logger');
logger.debug('Calling /register endpoint with body: %o', req.body);
try {
const userServiceInstance = typedi_1.Container.get(UserService_1.default);
const { user, token } = yield userServiceInstance.register(req.body);
return res.status(201).json({ user, token });
}
catch (e) {
return next(e);
}
}));
route.post('/login', celebrate_1.celebrate({
body: celebrate_1.Joi.object({
email: celebrate_1.Joi.string().required(),
password: celebrate_1.Joi.string().required(),
}),
}), (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
const logger = typedi_1.Container.get('logger');
logger.debug('Calling /login endpoint with email: %s', req.body.email);
try {
const userServiceInstance = typedi_1.Container.get(UserService_1.default);
const { user, token } = yield userServiceInstance.login(req.body.email, req.body.password);
return res.json({ user, token }).status(200);
}
catch (e) {
return next(e);
}
}));
exports.default = route;
//# sourceMappingURL=auth.js.map
;