Test compose

This commit is contained in:
LeoMortari
2025-09-15 00:50:45 -03:00
parent a9c9675168
commit 8f9deb20e2
5 changed files with 11 additions and 9 deletions

View File

@@ -8,6 +8,7 @@ services:
container_name: clipperia-api container_name: clipperia-api
environment: environment:
NODE_ENV: production NODE_ENV: production
KEYCLOAK_URL: http://keycloak:8080
DATABASE_URL: postgresql://leolitas:L@l321321321@postgres:5432/clipperia?schema=public DATABASE_URL: postgresql://leolitas:L@l321321321@postgres:5432/clipperia?schema=public
networks: networks:
- dokploy-network - dokploy-network

View File

@@ -9,6 +9,7 @@ import { VideosController } from './videos/videos.controller';
import { UsuariosModule } from './usuarios/usuarios.module'; import { UsuariosModule } from './usuarios/usuarios.module';
import { LoggerMiddleware } from './middleware/logger.middleware'; import { LoggerMiddleware } from './middleware/logger.middleware';
import { RolesGuard } from './auth/roles.guard'; import { RolesGuard } from './auth/roles.guard';
import { AuthController } from './auth/auth.controller';
@Module({ @Module({
imports: [ imports: [
@@ -24,5 +25,6 @@ import { RolesGuard } from './auth/roles.guard';
export class AppModule { export class AppModule {
configure(consumer: MiddlewareConsumer) { configure(consumer: MiddlewareConsumer) {
consumer.apply(LoggerMiddleware).forRoutes(VideosController); consumer.apply(LoggerMiddleware).forRoutes(VideosController);
consumer.apply(LoggerMiddleware).forRoutes(AuthController);
} }
} }

View File

@@ -33,9 +33,7 @@ export interface JwtPayload {
@Injectable() @Injectable()
export class KeycloakJwtStrategy extends PassportStrategy(Strategy, 'jwt') { export class KeycloakJwtStrategy extends PassportStrategy(Strategy, 'jwt') {
constructor() { constructor() {
const baseUrl = process.env.KEYCLOAK_URL const baseUrl = process.env.KEYCLOAK_URL ?? 'https://auth.clipperia.com.br';
? process.env.KEYCLOAK_URL
: 'https://auth.clipperia.com.br';
super({ super({
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),

View File

@@ -5,7 +5,7 @@ import {
Patch, Patch,
Body, Body,
Query, Query,
UseGuards, // UseGuards,
} from '@nestjs/common'; } from '@nestjs/common';
import { videos, Prisma, video_situation } from 'generated/prisma'; import { videos, Prisma, video_situation } from 'generated/prisma';
@@ -13,17 +13,17 @@ import { VideosService } from './videos.service';
import { VideoResponseDto } from './dto/video-response.dto'; import { VideoResponseDto } from './dto/video-response.dto';
import { PaginatedQueryDto, PaginatedResponse } from '../shared/dto/paginated'; import { PaginatedQueryDto, PaginatedResponse } from '../shared/dto/paginated';
import { EBooleanPipe } from '../shared/pipe'; import { EBooleanPipe } from '../shared/pipe';
import { KeycloakAuthGuard } from '../auth/keycloak-auth.guard'; // import { KeycloakAuthGuard } from '../auth/keycloak-auth.guard';
import { Roles } from 'src/auth/decorator/roles.decorator'; // import { Roles } from 'src/auth/decorator/roles.decorator';
import { RolesGuard } from 'src/auth/roles.guard'; // import { RolesGuard } from 'src/auth/roles.guard';
@Controller('videos') @Controller('videos')
@UseGuards(KeycloakAuthGuard, RolesGuard) // @UseGuards(KeycloakAuthGuard, RolesGuard)
export class VideosController { export class VideosController {
constructor(private readonly videosService: VideosService) {} constructor(private readonly videosService: VideosService) {}
@Get() @Get()
@Roles('user', 'admin') // @Roles('user', 'admin')
async list( async list(
@Query() query: PaginatedQueryDto, @Query() query: PaginatedQueryDto,
@Query('situation') situation?: video_situation, @Query('situation') situation?: video_situation,

View File

@@ -2,6 +2,7 @@ import { Module } from '@nestjs/common';
import { VideosService } from './videos.service'; import { VideosService } from './videos.service';
import { VideosController } from './videos.controller'; import { VideosController } from './videos.controller';
import { PrismaModule } from '../prisma/prisma.module'; import { PrismaModule } from '../prisma/prisma.module';
// import { RolesGuard } from 'src/auth/roles.guard';
@Module({ @Module({
imports: [PrismaModule], imports: [PrismaModule],