import {
  Controller,
  Post,
  Body,
  UsePipes,
  Get,
  UseGuards,
} from '@nestjs/common';

import { UserService } from './user.service';
import { UserDTO } from './user.dto';
import { AuthGuard } from '../shared/auth.guard';
import { ValidationPipe } from '../shared/validation.pipe';

/*
UserController is being used for routing:
- Login
- Register

- Verify is checking for logged in user

See shared files for more information on decorators.
*/

@Controller('user')
export class UserController {
  constructor(private userService: UserService) {}

  @Post('register')
  @UsePipes(new ValidationPipe())
  createUser(@Body() data: UserDTO) {
    return this.userService.register(data);
  }

  @Post('login')
  @UsePipes(new ValidationPipe())
  loginUser(@Body() data: UserDTO) {
    return this.userService.login(data);
  }

  // verifies the token
  @Get('verify')
  @UseGuards(new AuthGuard())
  showMap() {
    return true;
  }
}