Skip to content
Snippets Groups Projects
game.controller.ts 1.77 KiB
Newer Older
Samuli Virtapohja's avatar
Samuli Virtapohja committed
import {
  Controller,
  Post,
  UseGuards,
  Body,
  Get,
  Param,
  UsePipes,
  Put,
} from '@nestjs/common';
import { GameService } from './game.service';
L4168's avatar
L4168 committed
import { AuthGuard } from '../shared/auth.guard';
import { User } from '../user/user.decorator';
import { GameDTO } from './game.dto';
import { ValidationPipe } from '../shared/validation.pipe';
Samuli Virtapohja's avatar
Samuli Virtapohja committed
import { Game_PersonEntity } from './game.entity';
import { Roles } from '../shared/roles.decorator';

@Controller('game')
export class GameController {
Samuli Virtapohja's avatar
Samuli Virtapohja committed
  constructor(private gameservice: GameService) {}
Samuli Virtapohja's avatar
Samuli Virtapohja committed
  @Post('new')
  @UseGuards(new AuthGuard())
  //@UsePipes(new ValidationPipe())
  async newGame(@User('id') person, @Body() body: GameDTO) {
    return this.gameservice.createNewGame(person, body);
  }
Samuli Virtapohja's avatar
Samuli Virtapohja committed
  @Put(':id')
  @Roles('admin')
  @UseGuards(new AuthGuard())
  @UsePipes(new ValidationPipe())
  async editGame(@Param('id') id: string, @Body() body: GameDTO) {
    return this.gameservice.editGame(id, body);
  }
Samuli Virtapohja's avatar
Samuli Virtapohja committed
  //   @UseGuards(new AuthGuard())
  //   @UsePipes(new ValidationPipe())
  //   @Post(':id')
  //   async joinGame(@User('id') person, @Body() data: Game_PersonEntity) {
  //     try {
  //       return this.gameservice.joinGame(person, data, json);
  //     } catch (error) {}
  //   }
Samuli Virtapohja's avatar
Samuli Virtapohja committed
  @Put('joinfaction')
  @UseGuards(new AuthGuard())
  joinFaction(
    @User('id') person,
    @Param('id') gameId,
    @Param('faction') faction: string,
    @Body() password: string,
  ) {
    try {
      //   return this.gameservice.joinFaction(person, gameId, faction, password);
    } catch (error) {
      return error;
Samuli Virtapohja's avatar
Samuli Virtapohja committed
  }
L4168's avatar
L4168 committed

Samuli Virtapohja's avatar
Samuli Virtapohja committed
  @Get('listgames')
  async listGames() {
    return this.gameservice.listGames();
  }

  @Get(':id')
  async returnGameInfo(@Param('id') id: string) {
    return this.gameservice.returnGameInfo(id);
  }