You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.5 KiB
43 lines
1.5 KiB
import { Controller, Get, Param, Query } from '@nestjs/common';
|
|
import { ApiTags, ApiOperation, ApiParam, ApiQuery, ApiResponse } from '@nestjs/swagger';
|
|
import { EventsService } from './events.service';
|
|
|
|
@ApiTags('热点事件')
|
|
@Controller('events')
|
|
export class EventsController {
|
|
constructor(private readonly eventsService: EventsService) {}
|
|
|
|
@Get()
|
|
@ApiOperation({ summary: '获取热点事件列表' })
|
|
@ApiQuery({ name: 'impact', required: false, enum: ['bullish', 'bearish', 'neutral'] })
|
|
@ApiQuery({ name: 'startDate', required: false })
|
|
@ApiQuery({ name: 'endDate', required: false })
|
|
@ApiQuery({ name: 'page', required: false, type: Number })
|
|
@ApiQuery({ name: 'size', required: false, type: Number })
|
|
@ApiResponse({ status: 200, description: '获取成功' })
|
|
async getEvents(
|
|
@Query('impact') impact?: string,
|
|
@Query('startDate') startDate?: string,
|
|
@Query('endDate') endDate?: string,
|
|
@Query('page') page = '1',
|
|
@Query('size') size = '20',
|
|
) {
|
|
return this.eventsService.getEvents(
|
|
impact,
|
|
startDate ? new Date(startDate) : undefined,
|
|
endDate ? new Date(endDate) : undefined,
|
|
parseInt(page, 10),
|
|
parseInt(size, 10),
|
|
);
|
|
}
|
|
|
|
@Get(':id')
|
|
@ApiOperation({ summary: '获取事件详情' })
|
|
@ApiParam({ name: 'id', description: '事件ID' })
|
|
@ApiResponse({ status: 200, description: '获取成功' })
|
|
@ApiResponse({ status: 404, description: '事件不存在' })
|
|
async getEventById(@Param('id') id: string) {
|
|
return this.eventsService.getEventById(id);
|
|
}
|
|
}
|