Init repo

This commit is contained in:
LeoMortari
2025-08-21 03:29:16 -03:00
commit 44a1625631
26 changed files with 6405 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
import {
Controller,
Get,
Param,
Patch,
Delete,
Body,
Query,
} from '@nestjs/common';
import { videos, Prisma, EVideoSituation } from 'generated/prisma';
import { VideosService } from './videos.service';
import { VideoResponseDto } from './dto/video-response.dto';
import { PaginatedQueryDto, PaginatedResponse } from './dto/paginated.dto';
@Controller('videos')
export class VideosController {
constructor(private readonly videosService: VideosService) {}
@Get()
async list(
@Query() query: PaginatedQueryDto,
@Query('situation') situation?: EVideoSituation,
): Promise<PaginatedResponse<VideoResponseDto>> {
return this.videosService.listPaginated(
query.page,
query.perPage,
situation,
);
}
@Get(':id')
async get(@Param('id') id: string): Promise<videos | null> {
return this.videosService.get(Number(id));
}
@Patch(':id')
async update(
@Param('id') id: string,
@Body() body: Prisma.videosUpdateInput,
): Promise<videos> {
return this.videosService.update(Number(id), body);
}
@Delete(':id')
async delete(@Param('id') id: string): Promise<videos> {
return this.videosService.delete(Number(id));
}
@Get('situation/:s')
async listBySituation(@Param('s') s: EVideoSituation): Promise<videos[]> {
return this.videosService.listBySituation(s);
}
}