fix: NPC controller — charger character depuis req.user (pas req.character)
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 38s
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 38s
This commit is contained in:
@@ -1,23 +1,36 @@
|
||||
import { Controller, Get, Query, Req, UseGuards } from '@nestjs/common';
|
||||
import { Controller, Get, Query, Req, UseGuards, BadRequestException } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { NpcService } from './npc.service';
|
||||
import { AuthGuard } from '../auth/guards/auth.guard';
|
||||
import { Character } from '../character/entities/character.entity';
|
||||
|
||||
@Controller('npcs')
|
||||
@UseGuards(AuthGuard)
|
||||
export class NpcController {
|
||||
constructor(private readonly npcService: NpcService) {}
|
||||
constructor(
|
||||
private readonly npcService: NpcService,
|
||||
@InjectRepository(Character)
|
||||
private readonly characterRepo: Repository<Character>,
|
||||
) {}
|
||||
|
||||
private async getCharacter(req: any) {
|
||||
const character = await this.characterRepo.findOne({ where: { userId: req.user.id } });
|
||||
if (!character) throw new BadRequestException('Aucun personnage trouvé');
|
||||
return character;
|
||||
}
|
||||
|
||||
/** GET /api/npcs — tous les PNJ visibles pour le joueur */
|
||||
@Get()
|
||||
async getAll(@Req() req: any) {
|
||||
const { characterId, level } = req.character;
|
||||
return this.npcService.getVisibleNpcs(characterId, level);
|
||||
const char = await this.getCharacter(req);
|
||||
return this.npcService.getVisibleNpcs(char.id, char.level);
|
||||
}
|
||||
|
||||
/** GET /api/npcs?location=village_plaza — PNJ d'un emplacement */
|
||||
/** GET /api/npcs/location?location=village_plaza — PNJ d'un emplacement */
|
||||
@Get('location')
|
||||
async getByLocation(@Req() req: any, @Query('location') location: string) {
|
||||
const { characterId, level } = req.character;
|
||||
return this.npcService.getNpcsByLocation(characterId, level, location);
|
||||
const char = await this.getCharacter(req);
|
||||
return this.npcService.getNpcsByLocation(char.id, char.level, location);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,10 +4,11 @@ import { Npc } from './npc.entity';
|
||||
import { NpcController } from './npc.controller';
|
||||
import { NpcService } from './npc.service';
|
||||
import { PlayerQuestArc } from '../quest/player-quest-arc.entity';
|
||||
import { Character } from '../character/entities/character.entity';
|
||||
import { AuthModule } from '../auth/auth.module';
|
||||
|
||||
@Module({
|
||||
imports: [TypeOrmModule.forFeature([Npc, PlayerQuestArc]), AuthModule],
|
||||
imports: [TypeOrmModule.forFeature([Npc, PlayerQuestArc, Character]), AuthModule],
|
||||
controllers: [NpcController],
|
||||
providers: [NpcService],
|
||||
exports: [NpcService],
|
||||
|
||||
Reference in New Issue
Block a user