import { Body, Controller, Get, Param, Post } from '@nestjs/common'; import { DEMO_CHARACTER_ID } from '../demo/demo-character.constants'; import { CombatActionDto } from './dto/combat-action.dto'; import { CombatService } from './combat.service'; @Controller('combats') export class CombatController { constructor(private readonly combatService: CombatService) {} // Declared before ':combatId' so the literal segment wins the route match. @Get('active') getActiveCombat() { return this.combatService.getActiveCombat(DEMO_CHARACTER_ID); } @Get(':combatId') getCombat(@Param('combatId') combatId: string) { return this.combatService.getCombat(DEMO_CHARACTER_ID, combatId); } @Post(':combatId/actions') performAction( @Param('combatId') combatId: string, @Body() dto: CombatActionDto, ) { return this.combatService.performAction( DEMO_CHARACTER_ID, combatId, dto.action, ); } }