| | import {
|
| | Body,
|
| | Controller,
|
| | Get,
|
| | HttpStatus,
|
| | Inject,
|
| | Param,
|
| | Post,
|
| | Put,
|
| | Query,
|
| | Req,
|
| | Res,
|
| | UploadedFile,
|
| | UseGuards,
|
| | UseInterceptors,
|
| | } from '@nestjs/common';
|
| | import { Response, Request } from 'express';
|
| | import { AuthService } from './auth.service';
|
| | import * as bcrypt from 'bcrypt';
|
| | import { LocalAuthGuard } from './local-auth.guard';
|
| | import { UserService } from '../user/user.service';
|
| | import { JwtAuthGuard } from './jwt-auth.guard';
|
| | import * as jwt from 'jsonwebtoken';
|
| | import { FileInterceptor } from '@nestjs/platform-express';
|
| | import { Model } from 'mongoose';
|
| | import { AuthGuard } from '@nestjs/passport';
|
| | import { JwtService } from '@nestjs/jwt';
|
| | import { CommonServices } from '../shared/common.service';
|
| | import { jwtConstants } from 'src/constants/jwt.constant';
|
| |
|
| | @Controller('auth')
|
| | export class AuthController extends CommonServices {
|
| | constructor(
|
| | private readonly authService: AuthService,
|
| | private readonly userService: UserService,
|
| | ) {
|
| | super();
|
| | }
|
| |
|
| | @UseGuards(LocalAuthGuard)
|
| | @Post('/login')
|
| | async login(
|
| | @Req() req: any,
|
| | @Res() res: Response,
|
| | @Body() body: any,
|
| | ): Promise<any> {
|
| | try {
|
| | const Userresp: any = await this.authService.login(req.user, body);
|
| | return this.sendResponse(
|
| | this.messages.Success,
|
| | Userresp,
|
| | HttpStatus.OK,
|
| | res,
|
| | );
|
| | } catch (error) {
|
| | console.log(`error =>`, error);
|
| | return this.sendResponse(
|
| | 'Internal server Error',
|
| | {},
|
| | HttpStatus.INTERNAL_SERVER_ERROR,
|
| | res,
|
| | );
|
| | }
|
| | }
|
| |
|
| | @Post('/signup')
|
| | async signup(
|
| | @Req() req: any,
|
| | @Res() res: Response,
|
| | @Body() body: any,
|
| | ): Promise<any> {
|
| | try {
|
| | const email = body.email.toLowerCase().trim();
|
| |
|
| | const checkUser = await this.userService.sharedFindOne({ email: email });
|
| |
|
| | if (checkUser && checkUser.email == email) {
|
| | return this.sendResponse(
|
| | this.messages.userAlreadyExist,
|
| | {},
|
| | HttpStatus.CONFLICT,
|
| | res,
|
| | );
|
| | }
|
| |
|
| | const createUser = await this.userService.sharedCreate({
|
| | ...body,
|
| | password: bcrypt.hashSync(body.password, jwtConstants.salt),
|
| | roles: ['user'],
|
| | });
|
| |
|
| | const Userresp: any = await this.authService.login(createUser);
|
| |
|
| | return this.sendResponse(
|
| | 'Account created!',
|
| | {
|
| | ...Userresp,
|
| | },
|
| | HttpStatus.OK,
|
| | res,
|
| | );
|
| | } catch (error) {
|
| | console.log(error);
|
| |
|
| | return this.sendResponse(
|
| | 'Internal server Error',
|
| | {},
|
| | HttpStatus.INTERNAL_SERVER_ERROR,
|
| | res,
|
| | );
|
| | }
|
| | }
|
| | }
|
| |
|