import { ValidationResult } from '../../shared/dto/validationResult.dto.js'; import { EbsiWrapper } from '../../shared/middleware/ebsiWrapper.js'; import { CredentialValidationOptions } from '../../shared/dto/validationOptions.dto.js'; import { Validator } from '../credentialValidatorFactory.js'; import { EBSI } from '../../config.js'; export class EbsiCredentialValidator implements Validator { constructor(private ebsiWrapper: EbsiWrapper) {} async validate( vc: string, opts?: CredentialValidationOptions, ): Promise { try { if (!opts?.ebsiAuthority) { return { valid: false, messages: ['ConfigurationError: missing ebsiAuthority'], }; } await this.ebsiWrapper.validate(vc, { ebsiAuthority: opts.ebsiAuthority || EBSI.ebsiAuthority, }); return { valid: true }; } catch (e) { return { valid: false, messages: [e.message], }; } } }