refactor: 统一代码缩进与引号风格,新增CORS配置

1.  修正所有文件的缩进为4空格,将单引号统一改为双引号
2.  新增CORS_ORIGIN环境变量配置并从env读取CORS允许源
3.  新增prettier配置文件统一代码格式
4.  为main.ts添加启动日志输出
This commit is contained in:
2026-07-02 16:03:42 +08:00
parent 0eeeea0c4d
commit f2b1043cbc
10 changed files with 388 additions and 435 deletions

View File

@@ -1,172 +1,134 @@
import {
Body,
Controller,
Get,
Param,
Patch,
Post,
Query,
UseGuards,
} from '@nestjs/common';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { RequirePermissions } from '../admin/decorators/require-permissions.decorator';
import { AdminJwtAuthGuard } from '../admin/guards/admin-jwt-auth.guard';
import { PermissionsGuard } from '../admin/guards/permissions.guard';
import { ConfigureEpisodesDto } from './dto/configure-episodes.dto';
import { CreateDramaDto } from './dto/create-drama.dto';
import { CreateEpisodeDto } from './dto/create-episode.dto';
import { UpdateDramaDto } from './dto/update-drama.dto';
import { UpdateEpisodeDto } from './dto/update-episode.dto';
import { DramasService } from './dramas.service';
import { PublishStatus } from './drama-status.enum';
import { Body, Controller, Get, Param, Patch, Post, Query, UseGuards } from "@nestjs/common";
import { ApiBearerAuth, ApiTags } from "@nestjs/swagger";
import { RequirePermissions } from "../admin/decorators/require-permissions.decorator";
import { AdminJwtAuthGuard } from "../admin/guards/admin-jwt-auth.guard";
import { PermissionsGuard } from "../admin/guards/permissions.guard";
import { ConfigureEpisodesDto } from "./dto/configure-episodes.dto";
import { CreateDramaDto } from "./dto/create-drama.dto";
import { CreateEpisodeDto } from "./dto/create-episode.dto";
import { UpdateDramaDto } from "./dto/update-drama.dto";
import { UpdateEpisodeDto } from "./dto/update-episode.dto";
import { DramasService } from "./dramas.service";
import { PublishStatus } from "./drama-status.enum";
@ApiTags('Dramas')
@ApiTags("Dramas")
@Controller()
export class DramasController {
constructor(private readonly dramasService: DramasService) {}
constructor(private readonly dramasService: DramasService) {}
@Post('/api/admin/v1/dramas')
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions('drama:create')
createDrama(@Body() dto: CreateDramaDto) {
return this.dramasService.createDrama(dto);
}
@Post("/api/admin/v1/dramas")
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions("drama:create")
createDrama(@Body() dto: CreateDramaDto) {
return this.dramasService.createDrama(dto);
}
@Get('/api/admin/v1/dramas')
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions('drama:read')
listAdminDramas(@Query('page') page?: string, @Query('pageSize') pageSize?: string) {
return this.dramasService.listAdminDramas({
page: Number(page) || 1,
pageSize: Number(pageSize) || 20,
});
}
@Get("/api/admin/v1/dramas")
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions("drama:read")
listAdminDramas(@Query("page") page?: string, @Query("pageSize") pageSize?: string) {
return this.dramasService.listAdminDramas({
page: Number(page) || 1,
pageSize: Number(pageSize) || 20,
});
}
@Get('/api/admin/v1/dramas/:id')
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions('drama:read')
getDrama(@Param('id') id: string) {
return this.dramasService.getDramaOrThrow(Number(id));
}
@Get("/api/admin/v1/dramas/:id")
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions("drama:read")
getDrama(@Param("id") id: string) {
return this.dramasService.getDramaOrThrow(Number(id));
}
@Patch('/api/admin/v1/dramas/:id')
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions('drama:update')
updateDrama(@Param('id') id: string, @Body() dto: UpdateDramaDto) {
return this.dramasService.updateDrama(Number(id), dto);
}
@Patch("/api/admin/v1/dramas/:id")
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions("drama:update")
updateDrama(@Param("id") id: string, @Body() dto: UpdateDramaDto) {
return this.dramasService.updateDrama(Number(id), dto);
}
@Post('/api/admin/v1/dramas/:id/episodes/batch')
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions('episode:create')
configureEpisodes(
@Param('id') id: string,
@Body() dto: ConfigureEpisodesDto,
) {
return this.dramasService.configureEpisodes(Number(id), dto);
}
@Post("/api/admin/v1/dramas/:id/episodes/batch")
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions("episode:create")
configureEpisodes(@Param("id") id: string, @Body() dto: ConfigureEpisodesDto) {
return this.dramasService.configureEpisodes(Number(id), dto);
}
@Get('/api/admin/v1/dramas/:id/episodes')
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions('episode:update')
listAdminEpisodes(
@Param('id') id: string,
@Query('page') page?: string,
@Query('pageSize') pageSize?: string,
) {
return this.dramasService.listAdminEpisodes(Number(id), {
page: Number(page) || 1,
pageSize: Number(pageSize) || 20,
});
}
@Get("/api/admin/v1/dramas/:id/episodes")
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions("episode:update")
listAdminEpisodes(@Param("id") id: string, @Query("page") page?: string, @Query("pageSize") pageSize?: string) {
return this.dramasService.listAdminEpisodes(Number(id), {
page: Number(page) || 1,
pageSize: Number(pageSize) || 20,
});
}
@Post('/api/admin/v1/episodes')
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions('episode:create')
createEpisode(@Body() dto: CreateEpisodeDto) {
return this.dramasService.createEpisode(dto);
}
@Post("/api/admin/v1/episodes")
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions("episode:create")
createEpisode(@Body() dto: CreateEpisodeDto) {
return this.dramasService.createEpisode(dto);
}
@Patch('/api/admin/v1/episodes/:id')
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions('episode:update')
updateEpisode(@Param('id') id: string, @Body() dto: UpdateEpisodeDto) {
return this.dramasService.updateEpisode(Number(id), dto);
}
@Patch("/api/admin/v1/episodes/:id")
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions("episode:update")
updateEpisode(@Param("id") id: string, @Body() dto: UpdateEpisodeDto) {
return this.dramasService.updateEpisode(Number(id), dto);
}
@Patch('/api/admin/v1/dramas/:dramaId/episodes/:episodeId')
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions('episode:update')
updateDramaEpisode(
@Param('dramaId') dramaId: string,
@Param('episodeId') episodeId: string,
@Body() dto: UpdateEpisodeDto,
) {
return this.dramasService.updateDramaEpisode(
Number(dramaId),
Number(episodeId),
dto,
);
}
@Patch("/api/admin/v1/dramas/:dramaId/episodes/:episodeId")
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions("episode:update")
updateDramaEpisode(@Param("dramaId") dramaId: string, @Param("episodeId") episodeId: string, @Body() dto: UpdateEpisodeDto) {
return this.dramasService.updateDramaEpisode(Number(dramaId), Number(episodeId), dto);
}
@Post('/api/admin/v1/dramas/:id/submit-review')
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions('drama:update')
submitReview(@Param('id') id: string) {
return this.dramasService.submitReview(Number(id));
}
@Post("/api/admin/v1/dramas/:id/submit-review")
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions("drama:update")
submitReview(@Param("id") id: string) {
return this.dramasService.submitReview(Number(id));
}
@Patch('/api/admin/v1/episodes/:id/publish-status')
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions('episode:update')
updatePublishStatus(
@Param('id') id: string,
@Body() dto: { publishStatus: PublishStatus },
) {
return this.dramasService.updateEpisodePublishStatus(
Number(id),
dto.publishStatus,
);
}
@Patch("/api/admin/v1/episodes/:id/publish-status")
@ApiBearerAuth()
@UseGuards(AdminJwtAuthGuard, PermissionsGuard)
@RequirePermissions("episode:update")
updatePublishStatus(@Param("id") id: string, @Body() dto: { publishStatus: PublishStatus }) {
return this.dramasService.updateEpisodePublishStatus(Number(id), dto.publishStatus);
}
@Get('/api/app/v1/dramas')
listPublishedDramas(
@Query('page') page?: string,
@Query('pageSize') pageSize?: string,
@Query('title') title?: string,
) {
return this.dramasService.listPublishedDramas({
page: Number(page) || 1,
pageSize: Number(pageSize) || 10,
title,
});
}
@Get("/api/app/v1/dramas")
listPublishedDramas(@Query("page") page?: string, @Query("pageSize") pageSize?: string, @Query("title") title?: string) {
return this.dramasService.listPublishedDramas({
page: Number(page) || 1,
pageSize: Number(pageSize) || 10,
title,
});
}
@Get('/api/app/v1/dramas/:id/episodes')
listPublishedEpisodes(
@Param('id') id: string,
@Query('page') page?: string,
@Query('pageSize') pageSize?: string,
) {
return this.dramasService.listPublishedEpisodes(Number(id), {
page: Number(page) || 1,
pageSize: Number(pageSize) || 20,
});
}
@Get("/api/app/v1/dramas/:id/episodes")
listPublishedEpisodes(@Param("id") id: string, @Query("page") page?: string, @Query("pageSize") pageSize?: string) {
return this.dramasService.listPublishedEpisodes(Number(id), {
page: Number(page) || 1,
pageSize: Number(pageSize) || 20,
});
}
@Get('/api/app/v1/dramas/:id')
getPublishedDrama(@Param('id') id: string) {
return this.dramasService.getPublishedDramaOrThrow(Number(id));
}
@Get("/api/app/v1/dramas/:id")
getPublishedDrama(@Param("id") id: string) {
return this.dramasService.getPublishedDramaOrThrow(Number(id));
}
}