File

src/cloud/csam/csam.service.ts

Index

Properties
Methods

Constructor

constructor(configService: ConfigService)
Parameters :
Name Type Optional
configService ConfigService No

Methods

Public Async isSafe
isSafe(buf: Buffer, name: string, mime: string)
Parameters :
Name Type Optional
buf Buffer No
name string No
mime string No
Returns : Promise<boolean>

Properties

Private Readonly filter
Type : Filter
Private Readonly logger
Default value : new Logger(CsamService.name)
import { Injectable, Logger } from '@nestjs/common';
import Filter from '@fileglass/arach-node';
import { ConfigService } from '@nestjs/config';

@Injectable()
export class CsamService {
  private readonly filter: Filter;
  private readonly logger = new Logger(CsamService.name);
  constructor(configService: ConfigService) {
    this.filter = new Filter({ apikey: configService.get("ARACH_KEY"), url: configService.get("ARACH_URL"), trueOnError: true })
    this.filter.onError((err) => {
      this.logger.error('Arachnid error', err);
    });
  }

  public async isSafe(
    buf: Buffer,
    name: string,
    mime: string,
  ): Promise<boolean> {
    const { safe, rawResponse, errored } = await this.filter.isImageSafe<
      true,
      true
    >(buf, name, mime);
    return safe;
  }
}

results matching ""

    No results matching ""