Skip to content
Snippets Groups Projects
tracking.controller.ts 851 B
Newer Older
L4168's avatar
L4168 committed
import {
  Controller,
  Post,
  Param,
  UseGuards,
  UsePipes,
  Body,
} from '@nestjs/common';

import { TrackingService } from './tracking.service';
import { TrackingDTO } from './tracking.dto';
import { User } from '../user/user.decorator';
import { Roles, GameStates } from '../shared/guard.decorator';
import { ValidationPipe } from '../shared/validation.pipe';

@Controller('tracking')
export class TrackingController {
  constructor(private trackingservice: TrackingService) {}

  // inserts tracking data to the database
  // :id is the id of the game
  @Post('location/:id')
  @Roles('soldier')
L4168's avatar
L4168 committed
  @GameStates('STARTED')
L4168's avatar
L4168 committed
  @UsePipes(new ValidationPipe())
  async trackLocation(
    @User('id') userId,
    @Param('id') id,
    @Body() trackdata: TrackingDTO,
  ) {
    return this.trackingservice.trackLocation(userId, id, trackdata);
  }
}