From 0410d94ff9d96a6e320bec8513c16920222e9b11 Mon Sep 17 00:00:00 2001 From: Nabilsenko <96882497+Nabilsenko@users.noreply.github.com> Date: Tue, 13 Dec 2022 14:06:00 +0100 Subject: [PATCH] feat: added login to people --- src/config/index.ts | 2 +- src/people/dao/people.dao.ts | 9 +++++++++ src/people/people.controller.ts | 10 ++++++++++ src/people/people.service.ts | 3 +++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/config/index.ts b/src/config/index.ts index 3bf48c8..59e24a6 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -1,4 +1,4 @@ -import * as _config from './config.json'; +import * as _config from './config.template.json'; import { IConfig } from './config.model'; const config = _config as IConfig; diff --git a/src/people/dao/people.dao.ts b/src/people/dao/people.dao.ts index 39dc137..61f707a 100644 --- a/src/people/dao/people.dao.ts +++ b/src/people/dao/people.dao.ts @@ -17,6 +17,15 @@ export class PeopleDao { private readonly _peopleModel: Model<People>, ) {} + login = (email: string, password: string): Promise<People | void> => + new Promise((resolve, reject) => { + this._peopleModel.findOne({email : email, passwordHash : password}, (err, value) => { + if (err) reject(err.message); + if (!value) reject(new NotFoundException('Email or password is incorrect!')); + resolve(value); + }); + }); + find = (): Promise<People[]> => new Promise((resolve, reject) => { this._peopleModel.find({}, {}, {}, (err, value) => { diff --git a/src/people/people.controller.ts b/src/people/people.controller.ts index 8d40c28..4b382b4 100644 --- a/src/people/people.controller.ts +++ b/src/people/people.controller.ts @@ -16,11 +16,21 @@ import { HttpInterceptor } from '../interceptors/http.interceptor'; import { PeopleEntity } from './entities/people.entity'; import { PeopleService } from './people.service'; + interface Login { + email: string; + password: string; +} + @Controller('people') @UseInterceptors(HttpInterceptor) export class PeopleController { constructor(private readonly _peopleService: PeopleService) {} + @Post('/login') + login(@Body() login: Login): Promise<PeopleEntity | void> { + return this._peopleService.login(login.email, login.password); + } + @Get() findAll(): Promise<PeopleEntity[] | void> { return this._peopleService.findAll(); diff --git a/src/people/people.service.ts b/src/people/people.service.ts index e97344a..5ea05b6 100644 --- a/src/people/people.service.ts +++ b/src/people/people.service.ts @@ -8,6 +8,9 @@ import { PeopleEntity } from './entities/people.entity'; export class PeopleService { constructor(private readonly _peopleDao: PeopleDao) {} + login = (email: string, password: string): Promise<PeopleEntity | void> => + this._peopleDao.login(email, password); + findAll = (): Promise<PeopleEntity[] | void> => this._peopleDao.find(); findOne = (id: string): Promise<PeopleEntity | void> => -- GitLab