feat(now-playing): REST GET /now-playing (ключ — id станции каталога)

Клиенту нужен now-playing с правильным маппингом id (Record now-эндпоинт
использует id now-слотов, не каталога). Отдаём текущие треки по станциям
с stationId = catalog id, чтобы клиент сопоставлял по station.id.
This commit is contained in:
nk
2026-06-03 10:51:49 +03:00
parent e0990540b9
commit df20e0fac6
2 changed files with 24 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
import { Controller, Get } from '@nestjs/common';
import { ApiTags, ApiOperation } from '@nestjs/swagger';
import { NowPlayingService } from './now-playing.service';
@ApiTags('now-playing')
@Controller('now-playing')
export class NowPlayingController {
constructor(private readonly nowPlayingService: NowPlayingService) {}
// Текущие треки по всем станциям, ключ — числовой id станции (как в каталоге).
@Get()
@ApiOperation({ summary: 'Текущие треки по всем станциям' })
async getAll() {
const list = await this.nowPlayingService.getAllNowPlaying();
return list.map((np) => ({
stationId: np.station.stationId,
song: np.song,
artist: np.artist,
coverUrl: np.coverUrl,
}));
}
}

View File

@@ -1,5 +1,6 @@
import { Module, forwardRef } from '@nestjs/common'; import { Module, forwardRef } from '@nestjs/common';
import { NowPlayingGateway } from './now-playing.gateway'; import { NowPlayingGateway } from './now-playing.gateway';
import { NowPlayingController } from './now-playing.controller';
import { NowPlayingService } from './now-playing.service'; import { NowPlayingService } from './now-playing.service';
import { RecordStationSyncService } from './record-station-sync.service'; import { RecordStationSyncService } from './record-station-sync.service';
import { IcyNowPlayingService } from './icy-now-playing.service'; import { IcyNowPlayingService } from './icy-now-playing.service';
@@ -7,6 +8,7 @@ import { ChartsModule } from '../charts/charts.module';
@Module({ @Module({
imports: [forwardRef(() => ChartsModule)], imports: [forwardRef(() => ChartsModule)],
controllers: [NowPlayingController],
providers: [ providers: [
NowPlayingGateway, NowPlayingGateway,
NowPlayingService, NowPlayingService,