Skip to content

Commit

Permalink
create user controller
Browse files Browse the repository at this point in the history
  • Loading branch information
pestsov-v committed Feb 15, 2022
1 parent 8f5d6d4 commit 32e4cc4
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 23 deletions.
8 changes: 5 additions & 3 deletions src/app.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
import express, {Express} from 'express';
import { userRouter } from './users/users';
import { Server} from 'http';
import { LoggerService } from './logger/logger.service';
import { UserController } from './users/users.controller';

export class App {
app: Express;
server: Server;
port: number;
logger: LoggerService;
userController: UserController

constructor(logger: LoggerService) {
constructor(logger: LoggerService, userController: UserController) {
this.app = express();
this.port = 8000;
this.logger = logger;
this.userController = userController;
}

useRoutes() {
this.app.use('/users', userRouter);
this.app.use('/users', this.userController.router);
}

public async init() {
Expand Down
2 changes: 1 addition & 1 deletion src/common/base.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export abstract class BaseController {

protected bindRoutes(routes: IControllerRoute[]) {
for(const route of routes) {
this.logger.log(`[${route.method}: ${route.path}`);
this.logger.log(`[${route.method}]: ${route.path}`);
const handler = route.func.bind(this);
this.router[route.method](route.path, handler);
}
Expand Down
4 changes: 3 additions & 1 deletion src/main.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import { App } from "./app";
import { LoggerService } from "./logger/logger.service";
import { UserController } from "./users/users.controller";

async function bootstrap() {
const app = new App(new LoggerService);
const logger = new LoggerService();
const app = new App(logger, new UserController(logger));
await app.init();
}

Expand Down
21 changes: 21 additions & 0 deletions src/users/users.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { NextFunction, Request, Response } from "express";
import { BaseController } from "../common/base.controller";
import { LoggerService } from "../logger/logger.service";

export class UserController extends BaseController{
constructor(logger: LoggerService) {
super(logger);
this.bindRoutes([
{path: '/login', method: 'post', func: this.login},
{path: '/register', method: 'post', func: this.register}
])
}

login (req: Request, res: Response, next: NextFunction) {
this.ok(res, 'login')
}

register(req: Request, res: Response, next: NextFunction) {
this.ok(res, 'register')
}
}
18 changes: 0 additions & 18 deletions src/users/users.ts

This file was deleted.

0 comments on commit 32e4cc4

Please sign in to comment.