All checks were successful
Test Asgard Runner / test (push) Successful in 3s
- players: Primary data from player_sessions (online status, playtime aggregates);
ban/unban status overlaid from player_actions latest action per steam_id.
Register PlayerSession entity in PlayersModule. Extend NATS forwarding to
include 'unban' alongside kick and ban.
- analytics: Fix retention period boundary bug — sessions were queried with only
a lower-bound filter (MoreThan), causing all future cycles to bleed into earlier
wipe windows. Replaced with Between(wipeDate, endDate) for correct isolation.
- status: Replace hardcoded player_count=0/max_players=0 with live data from
most-recent server_stats row per license. Register ServerStats entity in
StatusModule. Falls back to 0 gracefully when no stats exist yet.
- maps: File buffer was computed and discarded — never written to disk.
Now writes to /app/map_data/{licenseId}/{timestamp}_{filename} (tenant-isolated,
docker volume map_data). Creates directories with mkdirSync(recursive:true).
Logs success/failure via NestJS Logger. Throws 500 on disk write failure
instead of silently losing data.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
16 lines
620 B
TypeScript
16 lines
620 B
TypeScript
import { Module } from '@nestjs/common';
|
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
import { PlayersController } from './players.controller';
|
|
import { PlayersService } from './players.service';
|
|
import { PlayerAction } from '../../entities/player-action.entity';
|
|
import { PlayerSession } from '../../entities/player-session.entity';
|
|
import { NatsService } from '../../services/nats.service';
|
|
|
|
@Module({
|
|
imports: [TypeOrmModule.forFeature([PlayerAction, PlayerSession])],
|
|
controllers: [PlayersController],
|
|
providers: [PlayersService, NatsService],
|
|
exports: [PlayersService],
|
|
})
|
|
export class PlayersModule {}
|