import { CanActivate, ExecutionContext, Inject, Injectable, UnauthorizedException, } from "@nestjs/common"; import { ApiService } from "../api.service"; @Injectable() export class AdminGuard implements CanActivate { constructor( @Inject(ApiService) private readonly apiService: ApiService ) {} async canActivate(context: ExecutionContext): Promise { const request = context.switchToHttp().getRequest(); const apiToken = request.apiToken; if (!apiToken || !apiToken.isAdmin) { throw new UnauthorizedException("Admin privileges are required"); } return true; } }