import {
  CanActivate,
  ExecutionContext,
  HttpException,
  HttpStatus,
  Injectable,
  UnauthorizedException,
} from '@nestjs/common';
import { JwtService } from '@nestjs/jwt';
import { AuthService } from './auth.service';
import { Reflector } from '@nestjs/core';
// import { ModelService } from 'src/model/model.service';
// import { ModelService } from '../model/model.service';
import { ConfigService } from '@nestjs/config';
import { Console } from 'console';
import { log } from 'util';

@Injectable()
export class AuthGuard implements CanActivate {
  private admin_scope;

  constructor(
    private jwtservice: JwtService,
    private authService: AuthService,
    // private readonly Model: ModelService,
    private Reflector: Reflector,
    private ConfigService: ConfigService
  ) {
    this.admin_scope = this.ConfigService.get<string>('ADMIN_SCOPE');
  }

  async canActivate(context: ExecutionContext): Promise<boolean> {
    const request = context.switchToHttp().getRequest();

    if (!request.headers.authorization) {
      throw new UnauthorizedException();
    }
    return true
  }
}
