node-pt / src /modules /auth /auth.controller.ts
bardd's picture
first commit
7b850b7
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,
);
}
}
}