Files
wwjcloud-nest-v1/wwjcloud/src/core/breaker/breakerGuard.ts

14 lines
555 B
TypeScript
Raw Normal View History

import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common';
import { CircuitBreakerService } from './circuitBreakerService';
@Injectable()
export class CircuitBreakerGuard implements CanActivate {
constructor(private readonly circuitBreakerService: CircuitBreakerService) {}
canActivate(context: ExecutionContext): boolean {
const request = context.switchToHttp().getRequest();
const serviceName = `${request.method}:${request.route?.path || 'unknown'}`;
return this.circuitBreakerService.isOpen(serviceName);
}
}